Objective-c 保存原始文本
Posted
技术标签:
【中文标题】Objective-c 保存原始文本【英文标题】:Objective-c saving raw text 【发布时间】:2009-12-26 15:05:49 【问题描述】:我在基于文档的应用程序中实现了保存和加载方法。在保存方法中,我有
[NSArchiver archivedDataWithRootObject:[self string]];
[self string]
是一个 NSString。
当保存一个只有“正常内容”的文件时,创建的文件的内容是:
streamtypedè@NSStringNSObject+普通内容
有没有办法将原始文本存储在文件中?
感谢您的帮助。
【问题讨论】:
【参考方案1】:NSString 中有一些方法可以保存到文件中:
NSString * s = @"Foo bar";
NSError * err = NULL;
BOOL result = [s writeToFile:@"/tmp/test.txt" atomically:YES encoding:NSASCIIStringEncoding error:&err];
【讨论】:
换句话说,不要使用 NSArchiver。 好吧。我怎样才能使用这种方法?- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
返回数据。我应该把 NSString 方法放在哪里?
writeToFile:atomically:encoding:error 是 NSString 上的一个方法。请参阅文档。
相反,我使用了[string dataUsingEncoding:NSUTF8StringEncoding];
。它按预期工作。
顺便说一句:NSString 是一头野兽。当我看到 stringWithContentsOfURL 时,我首先摇了摇头。【参考方案2】:
由于我是可可的新手,我不知道这是否是正确的方法,甚至是有效的方法。
但在快速查看文档后,我发现了这种 NSString 实例的方法,- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
快速尝试一个可以正常工作的示例项目:
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
所以这样的事情可能对你有用:
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
return [[self string] dataUsingEncoding:NSUnicodeStringEncoding];
【讨论】:
以上是关于Objective-c 保存原始文本的主要内容,如果未能解决你的问题,请参考以下文章
URLSessionDidFinishEventsForBackgroundURLSession 未调用-Objective-C