• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用 Evernote Cloud SDK 2.0 从 ENNoteContent 中获取 NSString

[复制链接]
菜鸟教程小白 发表于 2022-12-13 10:09:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap