我不明白何时使用(NSString *)名称以及何时使用(NSString)*名称。我希望有一个人可以帮助我/
问问题
572 次
2 回答
3
括号构成强制转换运算符。也就是说(NSString*) name
,编译器应该解释name
为指向 NSString 的指针;而(NSString) *name
意味着编译器应该将取消引用的值(即值name
指向的值)解释为 NSString。
于 2012-04-28T21:26:10.383 回答
3
您永远不需要使用(NSString)*name
. NSString *
是一种类型:指向NSString
. 所以在这样的方法声明中:
- (NSString *)capitalisedString: (NSString *)string
每次(NSString *)
出现都表示“后面的东西有类型NSString *
”。第一个表示方法的返回值是一个NSString
实例,第二个表示参数的类型string
是一个NSString
实例。
此讨论也适用于强制转换,即当您告诉编译器将变量视为特定类型时。因为NSString *
是一个类型,你会这样转换:
id object = //...
NSString *myString = (NSString *)object;
于 2012-04-28T21:26:18.640 回答