0

I am developing an App that displays several pages of Text when the correct buttons are pressed. It is Static proprietary information. There is a different Text File for each of six buttons.

I am new to the ios SDK. Does creating a project in XCODE automatically create a Documents Folder? Is the "Documents Folder" what Apple is calling the "Sandbox"?

Can I simply write my Text, (that part which will display on the screen, LOTS of Text), drop it into the "Documents Folder", then display it in "scrolling mode" on the iPhone when a certain button is pressed?

I would prefer the Text to be part of the compile, since the information is proprietary, not simply a Text File, if there is a way to store and display large Text Files efficiently.

4

3 回答 3

0

是的,Ken,当您创建应用程序时,默认情况下文档目录就在那里,是的,如果您愿意,您当然可以从中写入和读取文本数据。

您不能直接将数据放入 Documents 文件夹,但是您需要以编程方式进行。

假设您的文件之一是“TextFile1.txt”。您应该首先将此文件添加到您的项目中,然后在 appDelegate 中的某处编写以下代码;

NSString *fileBundlePath = [[NSBundle mainBundle] pathForResource:@"TextFile1" ofType:@"txt"];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileDocumentDirectorySavePath = [documentsDirectory stringByAppendingPathComponent:@"TextFile1.txt"];

NSFileManager *fm = [NSFileManager defaultManager];
if (![fm fileExistsAtPath:fileDocumentDirectorySavePath])
    [fm copyItemAtPath:fileBundlePath toPath:fileDocumentDirectorySavePath error:nil];

这会将 TextFile1.txt 复制到您的应用程序文档文件夹中,您可以随时使用以下代码从中读取它;

// You can get the fileDocumentDirectorySavePath same way as in the above code
NSString *stringToDisplay = [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileDocumentDirectorySavePath] encoding:NSUTF8StringEncoding];
NSLog(@"String : %@", stringToDisplay);

您可以对需要处理的任意数量的文本文件执行此操作。

于 2011-09-14T05:07:15.483 回答
0

如果您不想动态更改文本(即,仅在您提交更新时),只需将文件直接添加到您的 Xcode 项目中,甚至不必担心沙箱/文档文件夹。您可以将文件拖到 Xcode 的侧边栏中(为它创建一个自定义文件夹会非常有条理)并选中“将文件复制到项目文件夹?” 当被问到时。如前所述,它们现在被复制并成为已编译应用程序的一部分。然后您可以查询文件并以 显示它们UITextView,自动支持文本滚动。

或者,您可以执行我认为更简单的方法,并将文件直接包含在您的代码中。在加载文本的类文件中,在 .h 文件(标题)中,添加 aUITextView作为属性和变量。在 .m 文件(实现)中,执行yourTextView = [[UITextView alloc] init];,然后设置yourTextView.text为包含您的文本的 NSString。听起来令人困惑,但最终更新会更快更容易。也就是说,除非您的文本被格式化......无论如何,您也可以UITextView在您的 XIB/NIB 文件中创建一个并直接添加您的文本。

我建议你用代码来做。这将是最容易改变的。

于 2011-09-14T05:07:47.610 回答
0

将文本添加到您的应用程序是一回事 - 使其安全更加困难。我不得不处理类似的问题,并决定使用我在我的应用程序中加密的未格式化文本,并且只解密正在显示的部分。真的取决于你想保留文本的“秘密”程度。请记住,任何人都可以阅读它并直接从屏幕截图复制它。使用 HexEditor 也可以很容易地读取和提取应用程序中的未加密文本!

或者,您可以准备 *.txt(未格式化)或 html(按您喜欢的格式)文件格式的文本,然后将其包含在您的应用程序中。但是,这是其他人复制文件的简便方法。

于 2011-09-14T05:21:22.803 回答