在使用垃圾收集的项目中: Clang在分配 *anError 的行上警告“可能的 null 取消引用 ....”。
但这对我来说是正确的:为什么 NSError 需要双重间接?(指向指针的指针)
谁能看到我没有看到的东西?
- (NSData *)bookmarkDataForCurrentURL:(NSURL *)theURL error:(NSError **)anError
{
NSArray *bkKeys = [CBPrepCommon bookmarkPropertyKeys];
NSError *errorA = nil;
NSData *bkmark = [theURL bookmarkDataWithOptions:NSURLBookmarkCreationPreferFileIDResolution includingResourceValuesForKeys:bkKeys relativeToURL:nil error:&errorA];
if (![bkmark length] > 0) {
if (errorA) {
// error here
*anError = [NSError errorWithDomain:[errorA domain] code:[errorA code] userInfo:[errorA userInfo]];
}
return nil;
}
return bkmark;
}