我正在使用Core Data并尝试迭代我正在检索的对象。我在Xcode中遇到错误。
// Fetching Records and saving it in "fetchedRecordsArray" object
self.fetchedRecordsArray = [appDelegate getAllPhoneBookRecords];
//print array
NSLog(@"Count: %lu", (unsigned long)self.fetchedRecordsArray.count);
for (id object in self.fetchedRecordsArray) {
NSLog(@"%@", object.city);
}
计数返回6,所以我知道那里有物体。我也知道'city'是我实体中的一个属性。我得到的错误是:
Property ‘city’ not found on object of type ‘const _strong id’
有关如何解决此问题并记录正确返回内容的任何建议吗?
答案 0 :(得分:4)
而不是迭代对象,为什么不迭代你的实体。
for(<your entity class> obj in self.fetchedRecordsArray){
//do stuff
}
或者如果获取的记录包含多种类型的实体。
for(id obj in self.fetchedRecordsArray){
if([obj isKindOfClass:<you entity class>.class]){
//do stuff
}
else if([obj isKindOfClass:<you other entity class>.class]){
//do other stuff
}
}
答案 1 :(得分:1)
尝试更改此
for (id object in self.fetchedRecordsArray) {
NSLog(@"%@", object.city);
}
to
for (objectClassName *object in self.fetchedRecordsArray) {
NSLog(@"%@", object.city);
}
注意:* object not object - in for loop
答案 2 :(得分:0)
尝试这个迭代对象,你也可以检查对象的实体,其中Objects是对象数组
for (NSManagedObject *obj in Objects)
{
if ([[obj entity].name isEqualToString:@"EntityName1"])
{
do stuff...
}
else if ([[obj entity].name isEqualToString:@"EntityName2"])
{
do stuff...
}
}
希望这有帮助