2014-03-29 27 views
0

的路径我试图检查文件是否存在于/ var/mobile/Documents /中,并且它非常适用于不是arm64的设备。但是,当我尝试在arm64设备上它给我可可错误257.NSFileManager无法找到/ var/mobile/

我尝试了ipad3/4和ipod5,它的工作。但是,当我在ipad mini 2和iPhone5S上试用它们时,它们都给了我可可错误257.

我做了一个快速检查,看看该文件是否可读,并且在ipad3/4和ipod5上得到YES,但是我得到NO在ipad mini 2和5S上。

if ([[NSFileManager defaultManager] isReadableFileAtPath:@"/var/mobile/Documents/"] == YES) { 
      UIAlertView *al = [[UIAlertView alloc] initWithTitle:@"yes" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
      [al show]; 
} else { 
      UIAlertView *al = [[UIAlertView alloc] initWithTitle:@"no" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
      [al show]; 
} 

任何帮助,将不胜感激!

+0

当你对/ var/mobile进行同样的调用时会发生什么? – mharper

+0

@mharper同样的事情发生了,如果我呼叫/ var /但在我调用/ var/mobile /或移动设备内的任何东西时停止在arm64上工作,似乎所有东西都可以工作。 – Mike

+0

查看@ igor的回答。根据体系结构的不同,“NSSearchPathForDirectoriesInDomains”必须返回不同的路径。 – mharper

回答

1
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectoryPath = paths[0]; 

if([[NSFileManager defaultManager] isReadableFileAtPath:documentsDirectoryPath]) { 
    UIAlertView *al = [[UIAlertView alloc] initWithTitle:@"yes" 
               message:nil 
               delegate:self 
             cancelButtonTitle:@"Ok" 
             otherButtonTitles:nil, nil]; 
    [al show]; 
} 
else { 
    UIAlertView *al = [[UIAlertView alloc] initWithTitle:@"no" 
               message:nil 
               delegate:self 
             cancelButtonTitle:@"Ok" 
             otherButtonTitles:nil, nil]; 
    [al show]; 
} 
+0

谢谢!这似乎已经做到了。 – Mike