在希望通過函數的參數傳回Objective-C對象的時候,遇到了這個問題
錯誤代碼如下:
- (void)methodA:(NSString **)string<span style="white-space:pre"> </span>// 其實,這裡的參數實際類型是:(NSString * __autoreleasing * )string
{
*string = XXX;
}
正确的用法是
- (void)methodA:(NSString * __strong *)string
{
*string = XXX;
}
調用的時候:
NSString *strongString;
[object methodA:&strongString];
Ref:
1.
http://blog.csdn.net/chuanyituoku/article/details/17371807
我的這篇文章的最後部分:
Returning a Result as the Argument
有詳細介紹 (看過一遍、并且了解 其實是遠遠不夠的,要吃過苦頭才能記牢。。。)
2.
http://codego.net/402513/