实例方法和语法

时间:2011-12-04 10:00:17

标签: objective-c syntax methods nsstring instance

我只是想知道这两种语法是否存在差异

说我有这样的事情......

NSString *Jam = [[NSString alloc]init];

NSString *Jam;

无关紧要..

执行以下两行代码之间有什么区别..

Jam = [Jam substringToIndex:1];

[Jam substringToIndex:1];

为什么我发现只有NSString能够拉出类似的东西..

如果我使用了迄今为止我使用的任何其他类(我没有使用那么多),这种语法不起作用。

然而我可以使用NSString类

NSString *object = [object stringByAppendingFormat:@"%@"];

NSString *object;
object = [object stringByAppendingFormat:@"%@"];

但与任何其他类...说,NSInteger,如果我尝试相同的语法..

NSInteger *number = [number setIntValue:2];

我会收到一个错误,告诉我空值不会被忽略,因为它应该是。

谢谢你们。

1 个答案:

答案 0 :(得分:0)

适用于NSString,因为stringByAppendingFormat会返回一个新的NSString,它是通过将新字符串附加到原始字符串而创建的。

setIntValue不会返回类的新副本,这就是您收到错误的原因。