2015-08-26 5 views
3

У моего класса есть все свойства как динамические, но при извлечении их из области я получаю коллекцию пустых объектов и проверяю область db с помощью браузера области, а данные есть, это мой класс:Realm.objects() возвращает пустые объекты

class ProjectEntity: Object { 

    /** 
    Property: All properties of the ProjectEntity 
    **/ 
    dynamic var ProjectId = 0 
    dynamic var ProjectTitle = "" 
    dynamic var ProjectSubtitle = "" 
    dynamic var ProjectType = "" 
    dynamic var ProjectClass = "" 
    dynamic var ProjectCoordinates = "" 
    dynamic var ProjectGraphType = "" 
    dynamic var ProjectModifiedOn = NSDate(timeIntervalSince1970: 0) 
    dynamic var ProjectCity = "" 
    dynamic var ProjectCounty = "" 
    dynamic var ProjectZip = "" 

    override static func primaryKey() -> String? { 
     return "ProjectId" 
    } 

    func getShape() -> MapShape{ 
     let adapter = ProjectsJSONAdapter() 
     let shape: MapShape = adapter.parseShape(id: self.ProjectId, type: self.ProjectGraphType, jsonStr: self.ProjectCoordinates) 
     return shape 
    } 
} 

вот как я читаю данные:

let projectsList = realm.objects(ProjectEntity) 
    for project in projectsList { 
     projects.append(project)//The properties in project have all their default/empty values 
    } 

какие-нибудь идеи?

ответ

1

Как восстановить сохраненные объекты ProjectEntity? Следующий фрагмент кода должен сделать трюк:

let entities = Realm().objects(ProjectEntity) 
+0

Спасибо, что это именно то, что я делаю, но как только я прохожу через сущность коллекции, каждый ProjectEntity пуст: вот это код: let projectsList = realm.objects (ProjectEntity) для проекта в проектахList { projects.append (проект) // этот проект имеет все свои свойства со значениями по умолчанию/пустым } –

+0

Я читал в других сообщениях, что добавление «динамического» к реквизитам должно соответствовать ему, но это не в м y case, что-нибудь еще, что я мог бы потерять? –

+0

Не могли бы вы уточнить, что неожиданно в поведении, которое вы видите? – segiddins

0

первый ваш класс должен наследовать RLMObject:

class ProjectEntity: RLMObject { 
    ... 
} 

и после того, если вы хотите, чтобы все объекты ProjectEntity попробовать это:

let allProjectEntityObjects: RLMResults = ProjectEntity.allObjects() 

, если вам нужна дополнительная помощь, вы можете следовать этот учебник от Realm:

Building a To-Do App with Realm

+0

Спасибо, но не работает, я получаю сообщение об ошибке «ProjectEntity.Type не член с именем„AllObjects“», я использую область 0.95.0 для быстры если это помогает –

+0

Я обновил свой ответ;) – Philippe

Смежные вопросы