的/釋放性這個問題類似於ios NSError types但解決方案描述有沒有工作,我認爲這是不完全是我需要的。發送「NSError * const的__strong *」到類型的參數「NSError * __ *自動釋放」改變保留指針
我有,需要一個方法執行異步調用,然後調用完成塊。當我嘗試通過NSError **來完成塊,我得到這個錯誤:
Sending 'NSError *const __strong *' to parameter of type 'NSError *__autoreleasing *' changes retain/release properties of pointer
的代碼如下:按值
+(void) agentWithGUID:(NSString *) guid completion:(void (^)(AKAgentProfile * agentProfile, NSError ** error)) completionBlock
{
dispatch_queue_t requestQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(requestQueue, ^{
NSString * parameterizedUrl = [AKAgentProfileEndPoint stringByAppendingString:guid];
NSURL *url = [NSURL URLWithString:parameterizedUrl];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError * error = nil;
AKAgentProfile * agentProfile = [[[AKAgentFactory alloc] init] agentProfileWithData:data error:&error];
dispatch_async(dispatch_get_main_queue(), ^{
completionBlock(agentProfile,&error);
});
});
}
對於指針指針與指針意味着什麼有一些基本的誤解。 – Andy
Andy:我承認,我花了一段時間才弄清楚事情後來證明是非常明顯的! –