黑马程序员技术交流社区
标题:
请教个ObjectiveC的文件读取操作问题
[打印本页]
作者:
那个Mr_Z
时间:
2014-4-8 09:37
标题:
请教个ObjectiveC的文件读取操作问题
我有2个一样的工程(Foundation Tool工程),2个工程的源码一样,都是这个:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * filename = @"~/CocoaProject/LearnObjectC/filestrings/filestrings.m";
filename = [filename stringByStandardizingPath];
printf("%s\n", [filename UTF8String]);
NSError * error;
NSString * source = [NSString stringWithContentsOfFile:filename
encoding:NSUTF8StringEncoding
error:&error];
if (error == nil)
{
NSLog(@"成功读取:%@", filename);
} else
{
NSLog(@"不成功:%@", [error description]);
}
printf("%s\n", [source UTF8String]);
[pool drain];
return 0;
}按说文件找到了应该跳到这里:NSLog(@"成功读取:%@", filename);
可是很奇怪的是,即便我能正常读取文件,依然会跳到NSLog(@"不成功:%@", [error description]);然后由于[error description]导致程序无法运行,我就是想知道造成这样结果的原因是什么...
作者:
yangoo1991
时间:
2014-4-8 10:36
文件路径不对,~是运行设备的目录,而不是你的工程目录,我用模拟器跑的~打印出来是:XXX/Application Support/iPhone Simulator/6.1/Applications/37253134-A710-4892-8270-AC4F6E259A25/
作者:
周宇华
时间:
2014-4-8 10:48
奇怪,我的就成功打印了。
/Users/zhouxf/Documents/code/other/other/main.m
2014-04-08 10:43:37.288 other[3776:303] 成功读取:/Users/zhouxf/Documents/code/other/other/main.m
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
@autoreleasepool {
//NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * filename = @"/Users/zhouxf/Documents/code/other/other/main.m";
filename = [filename stringByStandardizingPath];
printf("%s\n", [filename UTF8String]);
NSError * error;
NSString * source = [NSString stringWithContentsOfFile:filename
encoding:NSUTF8StringEncoding
error:&error];
if (error == nil)
{
NSLog(@"成功读取:%@", filename);
} else
{
NSLog(@"不成功:%@", [error description]);
}
printf("%s\n", [source UTF8String]);
}
//[pool drain];
return 0;
}
Program ended with exit code: 0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2