mob*_*bob 12 iphone cocoa nsstring
我有一些来自Tuaw的示例代码,可能是3个版本旧;)编译器发出警告,该方法已被弃用,但我没有看到SDK文档中提到的.如果不推荐使用,则必须采用替代方法或替代方法.有谁知道这种方法的替代品是什么?
具体代码是:
NSArray *crayons = [[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"crayons" ofType:@"txt"]] componentsSeparatedByString:@"\n"];
Run Code Online (Sandbox Code Playgroud)
修改后的代码(在离散的白痴步骤中 - 没有错误处理)是:
NSError *error;
NSString *qs = [[NSBundle mainBundle] pathForResource: @"crayons" ofType: @"txt"];
NSString *ps = [[NSString alloc] stringWithContentsOfFile:qs encoding:NSUTF8StringEncoding error: &error];
NSArray *crayons = [[NSArray alloc] arrayWithContentsOfFile: ps];
Run Code Online (Sandbox Code Playgroud)
Car*_*rum 18
一种更有能力的方法取代了旧方法.使用:
+ (id)stringWithContentsOfFile:(NSString *)path
usedEncoding:(NSStringEncoding *)enc
error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
请享用!查看文档以获取更多信息.
Bas*_*que 18
这是一个例子,增加了Carl Norum的正确答案.
请注意&前缀为传递的错误变量的&符号.
// The source text file is named "Example.txt". Written with UTF-8 encoding.
NSString* path = [[NSBundle mainBundle] pathForResource:@"Example"
ofType:@"txt"];
NSError* error = nil;
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:&error];
if(error) { // If error object was instantiated, handle it.
NSLog(@"ERROR while loading from file: %@", error);
// …
}
Run Code Online (Sandbox Code Playgroud)
usedEncoding参数的值将检测到的编码传回给您.有关讨论,请参阅此其他问题.一点建议......总是试图了解文件的字符编码.猜测是有风险的业务.
| 归档时间: |
|
| 查看次数: |
18808 次 |
| 最近记录: |