Ios 如何使用核心数据迭代检索到的对象?
我正在使用核心数据,并尝试遍历正在检索的对象。我在Xcode中遇到一个错误Ios 如何使用核心数据迭代检索到的对象?,ios,objective-c,Ios,Objective C,我正在使用核心数据,并尝试遍历正在检索的对象。我在Xcode中遇到一个错误 // Fetching Records and saving it in "fetchedRecordsArray" object self.fetchedRecordsArray = [appDelegate getAllPhoneBookRecords]; //print array NSLog(@"Count: %lu", (unsigned long)self.fetchedRecordsArray.count
// 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);
}
Count返回6,因此我知道其中有对象。我也知道“城市”是我实体中的一个属性。我得到的错误是:
Property ‘city’ not found on object of type ‘const _strong id’
有没有关于如何修复此问题并正确记录返回内容的建议?与其在对象上迭代,不如在实体上迭代
for(<your entity class> obj in self.fetchedRecordsArray){
//do stuff
}
for(self.fetchedRecordsArray中的对象){
//做事
}
或者,如果获取的记录包含多种类型的实体
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
}
}
for(self.fetchedRecordsArray中的id对象){
if([obj是类的种类:.class]){
//做事
}
else if([obj是类的kindof:.class]){
//做其他事情
}
}
尝试更改此设置
for (id object in self.fetchedRecordsArray) {
NSLog(@"%@", object.city);
}
to
for (objectClassName *object in self.fetchedRecordsArray) {
NSLog(@"%@", object.city);
}
注意:*对象不是对象-for循环中的对象尝试在对象中进行迭代,您还可以检查对象的实体,其中对象是对象的数组
for (NSManagedObject *obj in Objects)
{
if ([[obj entity].name isEqualToString:@"EntityName1"])
{
do stuff...
}
else if ([[obj entity].name isEqualToString:@"EntityName2"])
{
do stuff...
}
}
希望这有帮助与您的问题无关,但我必须说-调用app delegate来检索模型对象是一种代码味道。