好坑爹的MAC
本人新手,最新学习Objective-c。
有这么一个例子:
实例用NSFileManager 获取目录中jpeg类型的图片。
本人愚钝,也不知道那里有jpeg图片,就从网上下了几个图片,存放到用户/图片里了,为了方便不是。
一下教科书上的代码
//照着教科书上的例子 // main.m // FileWalker // // Created by djy dda on 12-7-2. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); } NSFileManager *manager=[NSFileManager defaultManager]; ///于是乎看到我电脑里有个图片文件夹啊,就测试这个吧。 NSString *home=[@"~/图片" stringByExpandingTildeInPath]; NSLog(@"路径-》%@",home);//默认是finder中设备名称/用户/用户名称/图片 [str1 writeToFile:home1 atomically:YES encoding:NSStringEncodingConversionAllowLossy error:Nil]; NSDirectoryEnumerator *direum=[manager enumeratorAtPath:home]; NSMutableArray *files=[NSMutableArray arrayWithCapacity:42]; NSString *fileName; ///结果发现 direum 是空的。很是无语。。 while (fileName=[direum nextObject]) { if([[fileName pathExtension ]isEqualTo:@"jpeg"]) { [files addObject:fileName]; } } NSEnumerator *fileenum; fileenum =[files objectEnumerator]; while (fileName=[fileenum nextObject]) { NSLog(@"filename->%@",fileName); } return 0; }
极度郁闷不知道那里原因,群里高手不屑回答我小菜鸟的问题。继续查。。
继续查,排除原因。
最终
将路径
NSString *home=[@"~/图片" stringByExpandingTildeInPath];
修改成
NSString *home=[@"~" stringByExpandingTildeInPath];
发现 目录~/图片的图片也搜索出来了。。很是郁闷,发现路径英文的Pictures。真坑爹啊
正确用法是
NSString *home=[@"~/Pictures" stringByExpandingTildeInPath];
以防教训,特记录坑爹事件,不知道大家有没有被Mac坑过。