【发布时间】:2015-06-12 17:47:43
【问题描述】:
所以我有类似的东西:
- (void) printString:(NSString *)string
{
NSLog(@"%@", string);
}
NSString *string = @"Blach";
[self printString:string];
string 是通过值还是引用传递? NSError 之类的呢?
NSError *error = [NSError errorWithDomain:someDomain
code:-101
userInfo:someInfo];
-(NSString *) doSomething:(BOOL) val withError:(NSError **)error {
if(!val)
{
*errorPtr = [NSError errorWithDomain:something
code:-101
userInfo:someInfo];
}
}
【问题讨论】:
-
您应该从您的 C 基础知识中知道,Objective-C objects 是通过 reference 传递的。如果你不懂 C,那么你不应该与 Objective-C 混在一起。
-
@HotLicks C 的基础知识并没有教任何关于 Objective-C 对象(或任何其他 Objective-C 特定特性)如何表现的内容。 C 教的唯一一件事(关于这个问题)是对象 pointers 是按值传递的(就像所有参数一样)。
标签: objective-c object pass-by-reference pass-by-value