OStack程序员社区-中国程序员成长平台

标题: ios - 使用 Evernote Cloud SDK 2.0 从 ENNoteContent 中获取 NSString [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 10:09
标题: ios - 使用 Evernote Cloud SDK 2.0 从 ENNoteContent 中获取 NSString

我是 Evernote SDK 开发的新手,我正在使用 Evernote 推荐的 Evernote 云 SDK 2.0。

但是,我无法从 ENNoteContent 对象中获取 NSString 内容。我已经尝试了以下在线搜索,但似乎没有一个适用于 cloud sdk,因为我猜它们都是用于旧版本的 Evernote SDK...

1 使用“convertENMLToHTML”方法。

根据thisthis ,我可以直接在 ENNoteContent 对象上调用 convertENMLToHTML,就像 convertENMLToHTML:note.content 一样。但是,在云 SDK 中,这会导致 ENMLUtility 中的异常终止应用程序,因为 convertENMLToHTML 需要一个 NSString 而不是 ENNoteContent 并且此函数所做的第一件事是尝试调用 [enmlContent dataUsingEncoding:NSUTF8StringEncoding]] 如果 enmlContent 是指向 ENNoteContent 的指针而不是指向 NSString 的指针,则会导致异常。

2 尝试从 ENNoteContent 对象中获取 _eml 对象

这个 post有一个调用 [note.content enml] 的引用,但这又不适用于 cloud sdk,因为对象 enml 未在接口(interface)中定义。

有谁知道如何从 ENNoteContent 中获取 NSString?我希望这是一个非常简单的过程,但很惊讶我找不到任何适用于 Cloud SDK 的东西。

3 使用 generateWebArchiveData 方法

根据下面 Sash 的回答,我还尝试在云 sdk 的示例中使用 generateWebArchiveData 方法。我的代码如下所示:

[[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 输出“null”作为我已验证为合法内容的注释。

作为临时 hack,我们添加了 @property (nonatomic, copy) NSString * emml; 在 ENNoteContent.h 中并删除 ENNoteContent.m 中的同一行以暂时解决此问题。



Best Answer-推荐答案


你很接近。上面的技术 #1 是您想要的,但正如您发现 enml 属性在“默认”SDK 中是私有(private)的。导入“高级”标题,您将可以访问 note.content.enml。那是一个字符串,如果您更喜欢 HTML 表示,您可以将其发送到 convertENMLtoHTML。

请注意,现有笔记没有“纯文本”字符串内容。您将始终将其视为标记,如果您想摆脱标记,这样做超出了 SDK 的范围——如何做到这一点在很大程度上取决于您正在处理的内容的外观。

关于ios - 使用 Evernote Cloud SDK 2.0 从 ENNoteContent 中获取 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32291357/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4