【问题标题】:Objective-c saving raw textObjective-c 保存原始文本
【发布时间】:2009-12-26 15:05:49
【问题描述】:

我在基于文档的应用程序中实现了保存和加载方法。在保存方法中,我有

[NSArchiver archivedDataWithRootObject:[self string]];

[self string] 是一个 NSString。 当保存一个只有“正常内容”的文件时,创建的文件的内容是:

streamtypedè@NSStringNSObject+普通内容

有没有办法将原始文本存储在文件中?

感谢您的帮助。

【问题讨论】:

    标签: objective-c save


    【解决方案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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多