Я новичок в разработке Evernote SDK и использую Evernote cloud SDK 2.0, как рекомендовано Evernote.Получите NSString из ENNoteContent с Evernote Cloud SDK 2.0
Однако у меня возникли проблемы с получением содержимого NSString из объекта ENNoteContent. Я пробовал следующие поиски в Интернете, но никто не работает с облачным sdk, поскольку я думаю, что они все для старой версии Evernote SDK ...
1 Используя метод "convertENMLToHTML".
Согласно this и this, я мог бы назвать convertENMLToHTML непосредственно на объекте ENNoteContent много, как этот convertENMLToHTML:note.content
. Однако в облачном SDK это привело к исключению внутри ENMLUtility, которое завершает приложение, потому что convertENMLToHTML ожидает NSString в отличие от ENNoteContent, и первое, что делает эта функция, это попытка вызвать [enmlContent dataUsingEncoding:NSUTF8StringEncoding]]
, который вызвал исключение, если enmlContent является указателем на ENNoteContent, но не указатель на NSString.
2 Попытка получить _emml объект из объекта ENNoteContent
Это post имеет цитату вызова [note.content enml]
, но это опять-таки не работает с облаком, как объект SDK enml
не определен в интерфейсе.
Кто-нибудь знает, как можно получить NSString из ENNoteContent? Я ожидал бы, что это будет очень простой процесс, но я удивлен, что не смог найти ничего, что работает для Cloud SDK.
3 Использование метода generateWebArchiveData
ответ Per для Sash ниже, я также попытался использовать метод generateWebArchiveData в примере из облака SDK. Код у меня выглядит следующим образом:
[[ENSession sharedSession] downloadNote:result.noteRef progress:^(CGFloat progress) {
} completion:^(ENNote *note, NSError *downloadNoteError) {
if (note) {
NSLog(@"%@", note.title);
[note generateWebArchiveData:^(NSData *data) {
NSString* strContent = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"test content %@", strContent);
}];
} else {
NSLog(@"Error downloading note contents %@", downloadNoteError);
}
}];
Однако strContent выводит «нуль» для примечания, что я проверенный с законным содержанием.
В качестве временного взлома мы добавили @property (nonatomic, copy) NSString * emml;
в ENNoteContent.h и удалили ту же строку в ENNoteContent.m, чтобы обойти это пока.
Спасибо Sash. Это хорошая идея, но, к сожалению, я не думаю, что это работает.В этом тесте я уточню основной вопрос. –