我正在开发一个App,当按下正确的按钮时,它会显示几页Text。它是静态专有信息。六个按钮中的每个按钮都有一个不同的文本文件。
我是ios SDK的新手。在XCODE中创建项目是否会自动创建文档文件夹?苹果称之为“文件夹”的是“沙盒”吗?
我可以简单地编写我的文本,(将显示在屏幕上的那部分,很多文本),将其放入“文档文件夹”中,然后当某个按钮显示时,在iPhone上以“滚动模式”显示它按下了吗?
我更喜欢将Text作为编译的一部分,因为如果有一种方法可以有效地存储和显示大型文本文件,那么信息是专有的,而不仅仅是文本文件。
答案 0 :(得分: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);
您可以对需要使用的任意数量的文本文件执行此操作。
答案 1 :(得分:0)
如果您不想动态更改文本(即,仅在提交更新时),只需将文件直接添加到Xcode项目中,甚至不用担心sandbox / Documents文件夹。您可以将文件拖到Xcode的侧边栏中(为它创建一个自定义文件夹,对你来说非常有条理)并检查“将文件复制到项目文件夹?”当问到。如上所述,它们现在已被复制并成为已编译应用程序的一部分。然后,您可以查询文件并在UITextView
中显示它们,自动支持滚动文本。
或者,您可以执行我认为更简单的方法,并将文件直接包含在您的代码中。在加载文本的类文件中,在.h文件(标题)中,添加UITextView
作为属性和变量。在.m文件(实现)中,执行yourTextView = [[UITextView alloc] init];
,然后将yourTextView.text
设置为包含文本的NSString。听起来令人困惑,但最终更新会更快更容易。也就是说,除非您的文本被格式化...无论如何,您还可以在XIB / NIB文件中创建UITextView
并直接添加文本。
我建议你在代码中这样做。这将是最容易改变的。
答案 2 :(得分:0)
向您的应用添加文字是一回事 - 让它变得更加安全更加困难。我不得不处理类似的问题,并决定使用我在我的应用程序中加密的无格式文本,并且只删除正在显示的部分。真的取决于你想保留文字的“秘密”。请记住,任何人都可以阅读它并使用屏幕截图从屏幕上直接复制它。使用HexEditor也可以非常轻松地读取和提取应用程序中未加密的文本!
或者,您可以使用* .txt(未格式化)或html(按照您喜欢的格式)文件格式准备文本,并将其包含在您的应用中。但是,这是其他人复制文件的简便方法。