2015-05-16 1 views
0

Я успешно загрузил примечание со следующим фрагментом, найденным в примере проекта.Доступ к тегам на Evernote SDK

[[ENSession sharedSession] downloadNote:self.noteRef progress:^(CGFloat progress) { 
    if (self.webView) { 

    } 
} completion:^(ENNote *note, NSError *downloadNoteError) { 
    if (note && self.webView) { 
     self.note = note; 
     NSLog(@"%@", self.note.title); 
     NSLog(@"%@", self.note.sourceUrl); 

     NSLog(@"%lu", self.note.EDAMNote.tagNames.count); 
     NSLog(@"%lu", self.note.tagNames.count); 
     [self loadWebDataFromNote:note]; 
    } else { 
     NSLog(@"Error downloading note contents %@", downloadNoteError); 
    } 
}]; 

Хотя название правильное, массив tagNames возвращается как ноль.

Невозможно получить имя тега на основе заметок?

Приветствия

ответ

2

Меня зовут Эрик Ченг. Я ведущий инженер по Evernote IOS SDK

Читать эту https://github.com/evernote/evernote-cloud-sdk-ios/blob/master/evernote-sdk-ios/ENSDK/ENNote.h#L57-L63

я предоставил класс ENNote действовать в качестве упрощенной версии EDAMNote, что класс представитель бережливости для записки Evernote. ENNote делает простые вещи и облегчает понимание разработчиками. Если вы хотите читать метки на заметке, вы должны использовать Эда API, который указан здесь https://github.com/evernote/evernote-cloud-sdk-ios/blob/master/evernote-sdk-ios/ENSDK/Advanced/ENNoteStoreClient.h#L518-L528

Вы можете написать такой код:

ENSession * session = [ENSession sharedSession]; 
ENNoteStoreClient * noteStoreClient = [session noteStoreForNoteRef:noteRef]; 
[noteStoreClient getNoteTagNamesWithGuid:noteRef.guid success:^(NSArray *tags) { 
     NSLog(@"Tag count: %@", [tags count]); 
    } failure:^(NSError *error) { 
     NSLog(@"Error in fetching tags %@ for note guid %@", error, noteRef.guid); 
}]; 
+0

спасибо Эрик. Это работает. Возможно, потому, что я новичок в этом, но мне нужно сделать '#import" ENSDKAdvanced.h "' кроме '#import" ENSession.h "', чтобы сделать эту работу. –

+0

Да, ты прав. Я забыл упомянуть, чтобы импортировать «ENSDKAdvanced.h», поскольку метод noteStoreForNoteRef доступен только через «ENSDKAdvanced.h». Благодаря! – giftederic

1

Вы можете использовать код, приведенный ниже, чтобы получить список тегов GUID.

ENSession * session = [ENSession sharedSession]; 
ENNoteStoreClient * noteStoreClient = [session noteStoreForNoteRef:noteRef]; 
[noteStoreClient getNoteWithGuid:noteRef.guid withContent:YES withResourcesData:NO withResourcesRecognition:NO withResourcesAlternateData:NO success:^(EDAMNote *note) { 
    NSLog(@"tags guids: %@", note.tagGuids); 
} failure:^(NSError *error) { 

}]; 

Затем получите список тегов Evernote и получите их имена.