Mis*_*Moo 5 core-data nsarray ios
由于某种原因,所有NSString类型的属性都在我的Article对象中作为NSArrays返回.这是我检索它们的功能:
- (NSArray *)getSavedArticles
{
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
NSError *error = nil;
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Article" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
NSSortDescriptor *dateSort = [NSSortDescriptor sortDescriptorWithKey:@"last_opened" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:dateSort]];
NSArray *fetchedObjects = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
return fetchedObjects;
}
Run Code Online (Sandbox Code Playgroud)
我没有为这些创建NSManagedObjectModel,而是我只是使用KVO访问它们.
//self.data has the array returned from getSavedArticles
NSManagedObject *object = [self.data objectAtIndex:indexPath.row];
NSString *path = [object valueForKey:@"path"];
NSString* id = [object valueForKey:@"id"];
Run Code Online (Sandbox Code Playgroud)
当我在变量窗格中查看此内容时path
,id
我看到(__NSArrayI *) ... Variable is not a CFString.
打印其中任何一个的描述也会打印出打印数组时使用的括号.
我只是想知道这是否可能是由于排序描述符?我已经仔细检查了进入这些对象的数据是否正确输入,而我用来备份所有内容的SQLite数据库正在显示字符串.
我尝试在模拟器中重新安装应用程序,并重置它.我仍然得到一个NSArray而不是NSString.
我真的不知道这里发生了什么.任何帮助,将不胜感激.
编辑:我刚发现其他有趣的东西.我再做一次检查,看看文章是否已保存,这次我没有获得文章路径的NSArray:
- (NSString *)hasArticleSaved:(NSString *)id
{
NSString *path = nil;
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"%K == %@", @"id", id]];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Article" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *fetchedObjects = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects.count > 0) {
NSManagedObject *savedArticle = [fetchedObjects objectAtIndex:0];
path = [savedArticle valueForKey:@"path"];
}
return path;
}
Run Code Online (Sandbox Code Playgroud)
现在我真的很困惑.任何接受者?
我发现了这个问题。我更改了表的数据结构,因此 self.data 是一个数组数组...并且只有 1 个对象,看起来我得到了一个 NSArray,而实际上我只是错误地访问了数据。我只需要做[[self.data objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
归档时间: |
|
查看次数: |
375 次 |
最近记录: |