我已经从过去的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