Xcode Source Editor Extension 文件访问

1,216 阅读1分钟

原由

以前用的很好用的一款提示字符串的Xcode插件,在升级到Xcode8之后不能用了,因为后面的插件不再支持UI,你懂那种用习惯了好用了的东西突然不能用的感受么,简直。。。,为此希望能捣鼓捣鼓看可能重新使用。

探索

要想搜索字符串,首先就得获取project的字符串文件

NSString *dirPath = @"/Users/xxx/Documents/xxx/Resources/zh-Hans.lproj";  
NSArray *subPath = [[NSFileManager defaultManager] subpathsAtPath:dirPath];

满心希望的能够获取到subpath,结果返回的是个nil,😢,难道是dirPath不对,确认再三是对的,用

[[NSFileManager defaultManager] fileExistsAtPath:dirPath];

获取到的也是YES,没想明白是怎么回事,为什么文件夹是有的,但是获取子文件却是没有的,然后就想直接获取目标文件,

NSString *path = @"/Users/xxx/Documents/xxx/Resources/zh-Hans.lproj/Localizable.strings";
BOOL isExist = [[NSFileManager defaultManager] fileExistsAtPath:dirPath];

结果是有的,神奇了,为什么存在,但是获取不到呢

NSError *error = nil;
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

获取到的content是nil,但是!!!, error不是nil。。。

Error Domain=NSCocoaErrorDomain Code=257 "The file “Localizable.strings” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/Users/xxx/Documents/xxx/Resources/zh-Hans.lproj/Localizable.strings, NSUnderlyingError=0x7f87abd1c250 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

看来是苹果把这条路封死了么(哭),就只能操作纯文本,连系统文件都不能访问!!!!