【发布时间】:2015-07-08 08:08:17
【问题描述】:
以下代码在 MacOS 上运行良好,但在带有 SanDisk «SanDisk iXpand» 闪存驱动器的 iOS 上返回空列表:
NSArray *keys = [NSArray arrayWithObjects:NSURLVolumeNameKey, NSURLVolumeIsRemovableKey, nil];
NSArray *urls = [[NSFileManager defaultManager] mountedVolumeURLsIncludingResourceValuesForKeys:keys options:0];
NSLog(@«%@», urls); // print «null»
for (NSURL *url in urls) {
NSError *error;
NSNumber *isRemovable;
NSString *volumeName;
[url getResourceValue:&isRemovable forKey:NSURLVolumeIsRemovableKey error:&error];
if ([isRemovable boolValue]) {
[url getResourceValue:&volumeName forKey:NSURLVolumeNameKey error:&error];
NSLog(@"%@", volumeName);
}
}
有什么方法可以获取 iOS 上挂载的卷列表?
【问题讨论】:
-
由于 iOS 应用程序是沙盒,因此您无法访问应用程序沙盒之外的文件。安装的卷在应用程序沙箱之外,并且会出现故障。因此,除非 SanDisk 为那里的读卡器提供 SDK,否则您将无法访问它。因为访问附件需要 MFI 程序许可证。
-
您没有检查错误并报告它们。开始这样做,看看是否返回了任何有用的东西。