我的问题很简单,为什么我需要为NSString设置一个asterix而不是NSInteger?
NSString *myString = [NSString stringWithFormat:@"Hello, world !"];
NSInteger myInteger = 42;
答案 0 :(得分:5)
NSInteger是int的typedef,而NSString是指向NSString类的对象的指针。
答案 1 :(得分:5)
对于Cocoa对象,您总是声明一个指针,因此您始终使用星号。你不能把对象本身放入变量中;你总是处理一个指向对象的指针。
对于其他事情,它取决于变量是否包含对象(在C意义上)或指向对象的指针 - 其他地方。如果变量应该包含该对象,那么您不要用星号声明它,因为您没有在其中放置指针。如果它应该包含一个指针,那么你确实用星号声明它。
在C和Objective C中,int是原始数据类型。如果你写int *,这意味着“指向int的指针”。
很少有链接可以帮助您理解它。
提供者: -