objective-c - 从文件中读取数据

标签 objective-c file cocoa

我是 mac 和 Cocoa 的新手,所以如果这是一个愚蠢的问题,我很抱歉..

我需要读取我在保存在桌面上的文件中写入的所有行。 文件格式为.txt;我尝试使用 stringWithContentsOfFile 但程序卡住。 我尝试使用 GDB,发现虽然路径正确,但应该包含数据的字符串返回 nil。

我错过了什么重要的事情吗?

最佳答案

您需要使用路径而不仅仅是文件名

NSString *string;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if ([paths count] != 0) {
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *newFile = [documentsDirectory stringByAppendingPathComponent:@"filename.txt"];
    NSFileManager *fm = [NSFileManager defaultManager];
    if ([fm fileExistsAtPath:newFile]) {
        string = [NSString stringWithContentsOfFile:newFile];
    }
}

如果您从那里阅读,则需要将文档目录替换为 bundle 目录。

编辑

我抢先了。看来这不是 iPhone 的问题。尽管如此,您需要传递完整路径,而不仅仅是文件名

关于objective-c - 从文件中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1465877/

相关文章:

objective-c - 向 NSImageView 添加图像?

cocoa - NSLayoutConstraint.constant 忽略动画

iPhone 和 iPad 富文本编辑器

objective-c - NSNotification 在父类(super class)中观察并在父类(super class)和子类中处理

file - 找到 gzip 开头和结尾?

c 程序将媒体文件从一个位置复制到另一个位置

objective-c - cocoa 网页 View : searchFor:direction:caseSensitive:

objective-c - NSTimer代码永远执行

c++ - 如何检查文件是否已通过其他进程更改?

Swift 4 : NSFilenamesPboardType not available. 用什么代替 registerForDraggedTypes?