我一直在努力通过Apple低级文件部分中的Using a Directory Enumerator中的示例。可可:为什么在方法调用之前设置'nil'?
下面的代码片段:
for (NSURL *url in enumerator) {
// Error-checking is omitted for clarity.
NSNumber *isDirectory = nil;
[url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:NULL];
if ([isDirectory boolValue]) {
NSString *localizedName = nil;
[url getResourceValue:&localizedName forKey:NSURLLocalizedNameKey error:NULL];
NSNumber *isPackage = nil;
[url getResourceValue:&isPackage forKey:NSURLIsPackageKey error:NULL];
if ([isPackage boolValue]) {
NSLog(@"Package at %@", localizedName);
}
else {
NSLog(@"Directory at %@", localizedName);
}
}
}
为什么localizedName
,isPackage
和isDirectory
被设置为nil
之前,相关的呼叫到getResourceValue
方法?这只是过于谨慎或者这是必需的吗?
由于我读the docs为getResourceValue:forKey:error:
这似乎是多余的:
返回值是如果成功填充值 ;否则,否。如果 请求的资源值不 的网址定义
讨论值设为零。在这种情况下, 方法仍然返回YES。
我错过了什么吗?
这里没有编译器警告:'NSNumber * isDirectory,* isPackage; //其余的代码在那里......'这对我的眼睛更容易... – dawg 2011-04-26 01:58:25