我有一个大约2.2 MB数据的csv文件存在于应用程序包中.我试图将此csv文件的内容存储在NSString变量中.代码用于:
NSString *strBundle = [[NSBundle mainBundle] pathForResource:@"large" ofType:@"csv"];
NSError *error = nil;
NSString *dataStr = [NSString stringWithContentsOfFile:strBundle
encoding:NSUTF8StringEncoding
error:&error];
Run Code Online (Sandbox Code Playgroud)
但是,上面的代码不会将文件的文本存储在dataStr变量中.相反,我收到以下错误消息:
错误=错误域= NSCocoaErrorDomain代码= 261"操作无法完成.(Cocoa错误261.)"UserInfo = 0x1fdab580 {NSFilePath =/var/mobile/Applications/0C68E393-FBBE-45F6-819E-336D31C78043/DemoApp. app/large.csv,NSStringEncoding = 4}
如果,我删除文件的内容,使文件相对小于2.2 MB,上述代码工作正常,并获取dataStr变量中的字符串值.有人可以告诉我为什么会发生这种情况.可以存储在NSString变量中的数据量是否有任何限制.如何存储CSV文件的数据呢?
NSCocoaErrorDomain Code = 261是:NSFileReadInapplicableStringEncodingError.
读取错误,因为字符串编码不适用.使用NSStringEncodingErrorKey密钥从userInfo字典访问错误编码.
这表明文件不是NSUTF8StringEncoding.
您可以使用:
- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error
它将返回编码或错误.
通过从path命名的文件中读取数据来初始化NSString对象.返回的对象可能与原始接收器不同.如果无法打开文件或存在编码错误,则返回nil.
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |