Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS中的多语言文档(RTF):文件、SQLite、核心数据?怎么用?_Iphone_Objective C_Ios_Core Data_Rtf - Fatal编程技术网

Iphone iOS中的多语言文档(RTF):文件、SQLite、核心数据?怎么用?

Iphone iOS中的多语言文档(RTF):文件、SQLite、核心数据?怎么用?,iphone,objective-c,ios,core-data,rtf,Iphone,Objective C,Ios,Core Data,Rtf,我正在制作我的第一个iOS应用程序,我面临着我的第一个(小)问题 该应用程序将是一个非常经典的iOS用户界面体验:我的意思是,表视图、选项卡栏、推送控制器等。显示文档(来自已经存在的RTF文件)、音频和视频文件 我的RTF有混合语言,都由iOS支持,我认为这很重要,不是吗 考虑到音频和视频显然会存储在沙盒文档目录中,我对RTF不太确定 我希望它在每台设备上都是非常被动的,所以我的想法是将我的RTF存储在一个核心数据实体中(使用二进制类型),并使用NSAttributeString将其存储在我的应

我正在制作我的第一个iOS应用程序,我面临着我的第一个(小)问题

该应用程序将是一个非常经典的iOS用户界面体验:我的意思是,表视图、选项卡栏、推送控制器等。显示文档(来自已经存在的RTF文件)、音频和视频文件

我的RTF有混合语言,都由iOS支持,我认为这很重要,不是吗

考虑到音频和视频显然会存储在沙盒文档目录中,我对RTF不太确定

我希望它在每台设备上都是非常被动的,所以我的想法是将我的RTF存储在一个核心数据实体中(使用二进制类型),并使用NSAttributeString将其存储在我的应用程序中,NSAttributeString可以响应initWithRtf消息

我想在那之后我必须将它加载到UIWebView中?或者简单地将此NSAttributed字符串显示到textview中会保留其格式

但我不知道如何在我的应用程序中附带一个预填充核心数据的数据库

下面是我的问题:

  • 将这些RTF存储在核心数据中是个好主意吗?它真的比直接从documents文件夹加载RTF文件的简单UIWebView快吗?也许SQLite更适合我的情况
  • 如何将数据库预填充到我的应用程序中
  • 关于RTFs中的多种语言有什么特别的考虑吗?(例如,将拉丁语和非拉丁语放在同一个文件中)
非常感谢!再见

在我的应用程序中使用NSAttributedString获取它,它可以响应initWithRtf消息

那不行
-initWithRTF:documentAttributes:
目前仅在OS X上可用。要在iOS上将RTF文件转换为
NSAttributedString
,此时需要手动解析该文件(希望随着iOS 5的变化)

我想在那之后我必须将它加载到UIWebView中?或者简单地将此NSAttributed字符串显示到textview中会保留其格式

UIWebView
无法显示
NSAttributedString
s。也不能
UITextView
。您必须使用核心文本函数自己绘制文本。或者从一开始就使用HTML并在web视图中显示文本

将这些RTF存储在核心数据中是个好主意吗?它真的比直接从documents文件夹加载RTF文件的简单UIWebView快吗?也许SQLite更适合我的情况

普通文件有什么问题?这将是我的第一个选择,因为它似乎是最简单的。如果你不知道某件事是否需要优化,你就不必担心优化。但是,由于您可以使用核心数据或纯SQLite存储任意二进制数据,所以这绝对是可能的

如何将数据库预填充到我的应用程序中


只需将核心数据存储文件包含在应用程序包中即可。如果需要写入此数据库,您的代码需要在首次启动时将文件从捆绑包复制到应用程序的文档目录。

太好了,非常感谢!我在twitter上关注你,阅读你的博客,我打开了一个标签,上面有你三月最佳iOS链接!我将简单地用普通文件实现它,你是对的,我不必考虑优化我甚至没有测试过的东西……不清楚你在核心数据中存储RTF的动机是什么。这似乎是个错误。你能解释一下你为什么想这样做吗?我之所以想这样做是因为我认为RTF渲染不会很快通过UIWebView加载。但似乎我错了,无论如何我都要测试它。