Чтение rtf-информации из записей сущностей в NSString - PullRequest
0 голосов
/ 25 ноября 2010

У меня есть объект (названный Song), одним из атрибутов которого являются двоичные данные (поле rtf), которые я использую для хранения диаграмм аккордов или заметок о песне.Мне нужно иметь возможность напечатать это поле вместе с другими строковыми полями этой сущности.Я попробовал каждую перестановку этого, о которой я могу думать:

NSString* notesString = [[[NSString alloc] initWithRTF:[object valueForKey:@"cueNotes"] documentAttributes:nil] autorelease];

Я успешно проанализировал `[object valueForKey: @" cueNotes "] к NSData и увидел данные в формате rtf, но когда я пытаюсьinitWithRTF Я получаю нулевой результат.

Вот пример журнала сущности, из которой я извлекаю эти данные:

2010-10-30 00:47:32.867 lzshow7.2[4222:10b] <NSManagedObject: 0x2a4850> (entity: Song; id: 0x26a030 <x-coredata:///Song/t172F066B-285C-4125-B2FA-CFFA6A353D102> ; data: {
cueName = Stupid;
cueNo = 001;
cueNotes = <040b7479 70656473 74726561 6d8103e8 84014084 84840d4e 534d7574 61626c65 44617461 00848406 4e534461 74610084 8408>;
songToEffect =     (
);
songToInstrument =     (
);

})

Любая помощь, которую кто-либо может предоставить, будет очень полезной.оценили.

1 Ответ

0 голосов
/ 26 ноября 2010

initWithRTF: это метод NSAttributedString; NSString не ответит на этот селектор и вернет nil, поэтому вам просто нужно изменить имя класса, чтобы решить эту проблему.

Ваш компилятор, должно быть, предупреждал вас об этом - я бы посоветовал вам не игнорировать предупреждения компилятора, это избавляет от многих проблем.

Кроме того, nil следует использовать только вместо id - поскольку это не относится к атрибутам документа, вместо этого следует использовать NULL.

...