领域内未实例化的领域类

时间:2015-09-12 03:25:42

标签: ios parse-platform realm

我正在查询Parse端点News,然后尝试将返回的对象转换为RLMOBject子类对象NewsObject,以便将它们保存到我的Realm DB中。< / p>

问题是,我的数据已正确获取并显示在tableview中,但是,newsObj未创建! (此外,它后面的NSLog语句永远不会执行。)

使这更加奇特;每当我回到上一个视图,然后重新访问这个视图时,newsObj IS被实例化,NSLog正常执行!!

另一方面,尝试甚至实例化defaultRealm会产生类似的问题。

以下是我的完整代码的简化(同样已损坏)版本,在viewDidLoad中运行。

     //--- Query Parse for News entry ---   
     PFQuery *query = [PFQuery queryWithClassName:@"News"];

     [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

        self.dataSourceArray = [[NSMutableArray alloc] initWithArray:objects];
        [self.tableView reloadData];

        //--- Create RLMObject NewsObject ---    
        NewsObject *newsObj = [NewsObject new];
        NSLog(@"NewsObject Created");
     }];

更新

原来发生了几起未抛出的错误。

1)不应在后台线程上创建/更新REALM对象。

2)对于这个PARSE后台线程,不会抛出REALM对象本身的任何错误。

我首先必须在主线程上调度创建NewsObject,然后出现了有关在NSNumber模型中使用RLMObject属性的错误。我解决了这些问题,并使解决方案正常运行!

以下是我的代码现在的样子;

PFQuery *query = [PFQuery queryWithClassName:@"News"];

  [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

     if (!error) {

          //--- Create RLMObject on Main Thread ---    
          dispatch_async(dispatch_get_main_queue(), ^{

                NewsObject *newsObj = [NewsObject new];
                NSLog(@"NewsObject Created");

                self.dataSourceArray = [NewsObject allObjects];
                [self.tableView reloadData];
          });   
      }
  }];

0 个答案:

没有答案