我是新來的目標C,並且我不知道如何在使用新的ARC編譯器編譯代碼時創建和調用帶out參數的方法。在ARC中輸出參數Objective C
這是我試圖在非ARC目標C中完成的事情(這可能是錯誤的)。
//
// Dummy.m
// OutParamTest
#import "Dummy.h"
@implementation Dummy
- (void) foo {
NSString* a = nil;
[self barOutString:&a];
NSLog(@"%@", a);
}
- (void) barOutString:(NSString * __autoreleasing *)myString {
NSString* foo = [[NSString alloc] initWithString:@"hello"];
*myString = foo;
}
@end
(編輯以符合建議)。
我讀過這裏的文檔: http://clang.llvm.org/docs/AutomaticReferenceCounting.html
...但我發現很難得到任何東西,編譯,別提什麼,是正確的。任何人都可以用適合於ARC目標C的方式重寫上面代碼的jist?
究竟是什麼問題?你得到什麼編譯器錯誤? –
我已經使用您的建議更新了上面的代碼示例,並且包含了一組編譯器錯誤。謝謝。 – Ben
查看我的更新回答。正如編譯器所說的,你不能使用這樣的間接指針,而必須直接傳入'&a'。 –