A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 那个Mr_Z 中级黑马   /  2014-4-8 09:37  /  1373 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


我有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]导致程序无法运行,我就是想知道造成这样结果的原因是什么...

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
文件路径不对,~是运行设备的目录,而不是你的工程目录,我用模拟器跑的~打印出来是:XXX/Application Support/iPhone Simulator/6.1/Applications/37253134-A710-4892-8270-AC4F6E259A25/

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
奇怪,我的就成功打印了。
/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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马