我的NSData
对象-writeToFile:
方法存在问题,NSString
对象也存在问题。
当我编译为软件时,NSData
(或NSString
)可能无法回复-writeToFile:
消息。
当我运行该软件时,它会到达此行并成为例外。
我尝试写入文件的数据包含一个从互联网上下载的ASCII文件。
我已经尝试将结果导入BOOL,但编译提供了相同的警告消息。我在这里忽略了什么吗?
这是我的代码。如果有人可以提供帮助。
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [docsDirectory stringByAppendingPathComponent: Name];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = [[NSError alloc] init];
[fileManager removeItemAtPath:path error:&error];
NSURL *url = [NSURL URLWithString:@"http://www.szrt.hu/xls/luxor.csv"];
NSMutableURLRequest *liveRequest = [[NSMutableURLRequest alloc] initWithURL:url];
[liveRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData];
[liveRequest setValue:@"headervalue" forHTTPHeaderField:@"headerfield"];
NSURLResponse *response;
NSData *myData = [NSURLConnection sendSynchronousRequest:liveRequest returningResponse:&response error:&error];
NSString *myString=[[NSString alloc] initWithData:myData encoding:NSASCIIStringEncoding];
[myString writeToFile:path automatically:YES encoding:NSASCIIStringEncoding];
[myData release];
[myString release];
return true;
警告如下。
/Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:警告:'NSString'可能无法响应'-writeToFile :自动:编码:'
/Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:警告:(没有匹配方法签名的消息
/Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:警告:初始化从没有强制转换的指针生成整数
/Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:48:警告:未使用的变量'writeResult'
/Users/endre/Documents/Luxor/Classes/LuxorFile.m:68:0 /Users/endre/Documents/Luxor/Classes/LuxorFile.m:68:警告:'NSString'可能无法响应'-writeToFile :原子:编码:'
答案 0 :(得分:3)
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag;
是您想要的方法。所以,
...
BOOL result = [data writeToFile:path atomically:atomically];
...
应该这样做。