我有一个获取请求,它使用NSPredicate从Core Data中捕获一组NSString记录。但是,输出似乎难以理解。我看不出我错过了什么。这是代码:
NSManagedObjectContext *context = [self managedObjectContext];
NSEntityDescription *entityQuote = [NSEntityDescription entityForName:@"Quotes" inManagedObjectContext:context];
NSFetchRequest *fetchRequestQuote = [[NSFetchRequest alloc] init];
[fetchRequestQuote setEntity:entityQuote];
if ([sourceString isEqualToString:@"one"]) sourceString = @" one";
if ([sourceString isEqualToString:@"two"]) sourceString = @" two";
if ([sourceString isEqualToString:@"three"]) sourceString = @" three";
if ([sourceString isEqualToString:@"four"]) sourceString = @" four";
if ([sourceString isEqualToString:@"five"]) sourceString = @" five";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"quote contains %@", sourceString];
[fetchRequestQuote setPredicate:predicate];
NSArray *chosenSourceAll = [context executeFetchRequest:fetchRequestQuote error:nil];
int countSource = [chosenSourceAll count];
int rNumber = arc4random() % countSource;
NSLog(@"%d, %d, %@", rNumber, countSource, [chosenSourceAll objectAtIndex:rNumber]);
我在控制台中的输出是:
2, 38, <NSManagedObject: 0x8c65860> (entity: Quotes; id: 0x7fc4790 <x-coredata://9FC73918-E9DC-4CDB-9D32-E640C9E24C71/Quotes/p3> ; data: <fault>)
有关如何获取字符串内容以输出的任何想法?我是否不正确地格式化了我的获取请求?我确实检查了sqlite3文件,字符串很好。
答案 0 :(得分:1)
看起来你的Quotes
类根本不是NSString,而是NSManagedObject。您可能在Quotes对象上定义了一些属性,这是您实际存储引用主体的位置。这是您在打印到日志时要访问的属性,而不是对象本身。
如果这不对,请发布有关您的报价类的更多信息。