【发布时间】:2014-11-10 07:42:18
【问题描述】:
我正在尝试从我的核心数据模型中检索一个属性,并将获取的字符串放入我的导航栏的标题中。我一定是做错了什么,因为我无法将检索到的字符串设置为标题,但如果我手动输入字符串,我可以设置标题。
这是我从 Core Data 中检索的方式:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Area" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
//set predicate
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"identifier == %@", self.area_id];
NSArray *area = [context executeFetchRequest:fetchRequest error:&error];
NSString *area_name = [area valueForKey:@"name"];
NSString *test = @"test";
NSLog(@"%@",test);
NSLog(@"%@",area_name);
当我使用 self.tabBarController.title = area_name; 设置标题时我得到“NSArrayI stringByTrimmingCharactersInSet:]: unrecognized selector sent to instance”,当我将它设置为测试变量时它设置得很好。
我还注意到变量 test 的 NSLog 是“test”,而 area_name 的 NSLog 输出是:(“Single Area”)
这是因为我如何从数组中检索我的 area_name 吗?我应该改用字典吗?请原谅我的无知,我对 obj-c 还很陌生。
谢谢。
【问题讨论】:
-
'area' 数组将保存核心数据中符合您的谓词的所有对象。您需要找到您想要的并将其转换为它的类的对象。然后您可以访问它的属性。
标签: objective-c xcode core-data