为什么 NSString 不能按值重调?为什么当我们返回一个 NSString 类型的对象时,我们不需要使用指针符号?在声明函数的返回类型时需要指针符号:
NSString* boolString (BOOL yesNO)
{
if (yesNO==NO) {
return (@"NO");
} else {
return (@"YES");
}
}
为什么 NSString 不能按值重调?为什么当我们返回一个 NSString 类型的对象时,我们不需要使用指针符号?在声明函数的返回类型时需要指针符号:
NSString* boolString (BOOL yesNO)
{
if (yesNO==NO) {
return (@"NO");
} else {
return (@"YES");
}
}
NSString
,就像 Cocoa 类的任何其他实例一样,总是通过指针传递。这就是@
符号定义静态分配NSString
对象并返回其指针的原因。
看到这个问题的原因:为什么Objective-C对象必须动态分配?