Как я могу получить случайную строку из основных данных? - PullRequest
0 голосов
/ 23 января 2012

У меня есть запрос на выборку, который использует NSPredicate для захвата массива записей NSString из Core Data. Однако вывод кажется неразборчивым. Я не вижу, что мне не хватает. Вот код:

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 и все строки в порядке.

1 Ответ

1 голос
/ 23 января 2012

Похоже, ваш класс Quotes вовсе не NSString, а скорее NSManagedObject. Вы, вероятно, определили некоторый атрибут в объекте Quotes, где вы на самом деле храните свое тело цитаты. Это атрибут, к которому вы хотите получить доступ при печати в журнал, а не сам объект.

Если это не так, опубликуйте дополнительную информацию о вашем классе Quotes.

...