我已經從過去的1年,但第一次我碰到一個怪異的選擇參數來編碼應用,在Objective - C語言
- (NSString *)dictionaryForString:(NSDictionary *)dictionary error:(NSError **)error
需要正如你可以看到(NSDictionary *)
句法的理解是一個星號和(NSError **)
有兩個,那麼有一個或兩個星號有什麼區別?
由於
我已經從過去的1年,但第一次我碰到一個怪異的選擇參數來編碼應用,在Objective - C語言
- (NSString *)dictionaryForString:(NSDictionary *)dictionary error:(NSError **)error
需要正如你可以看到(NSDictionary *)
句法的理解是一個星號和(NSError **)
有兩個,那麼有一個或兩個星號有什麼區別?
由於
該方法通過參照返回錯誤,即,傳遞給它的指針的地址到NSError和它(任選地)設置指針值。
NSError *error = nil;
NSString *result = [obj dictionaryForString: dict error: &error];
if (!result)
NSLog(@"%@", error);
這是一種常見的C實踐。
的NSDictionary *意味着它是一個的NSDictionary對象的起始地址在內存 NSError **意味着它指向起始內存地址爲NSError對象
現在它是有道理的! :) 謝謝 – doNotCheckMyBlog 2012-01-03 06:13:13
沒錯了吧!謝謝 – doNotCheckMyBlog 2012-01-03 06:13:21