我正在尝试为我的NSObject派生对象实现Objective-C描述方法.
但是,我的派生对象有一个名称描述的ivar.由于某种原因,这导致了崩溃.
- (NSString *) description {
NSMutableString *output = [NSMutableString string];
[output appendFormat:@"MyObject.description = %@\n", self.description];
return output;
}
Run Code Online (Sandbox Code Playgroud)
为什么这会成为问题?
简答:崩溃是堆栈溢出的结果,因为您的-description
方法会反复调用自身.做你想做的事情(从描述方法中访问伊娃)是什么,你应该不使用前缀self.
在伊娃面前.
更多详情:
在Objective-C中,self.description
是简写[self description]
.使用dot-syntax通知编译器您要访问名为的属性description
,而不是 ivar本身.
归档时间: |
|
查看次数: |
101 次 |
最近记录: |