为什么我们不使用*,而我们创建NSRange的对象

问题描述:

有人可以告诉我,为什么我们不使用*与NSRange对象。每当我使用NSRange时*它会给出错误,为什么它会给出错误?为什么我们不使用*,而我们创建NSRange的对象

因为NSRange是一个结构体,而不是一个类。结构是值类型,因此您不像使用类实例那样使用指针(*是指针取消引用操作符)。

+0

好吧我怎么知道它的类,结构或什么的。 – 2010-12-23 12:49:34

+1

您可以随时参考[documentation](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html),或者右键单击Xco​​de,点击名称并选择**跳转到定义**。 – BoltClock 2010-12-23 12:50:30

这是NSRange的结构:

typedef struct _NSRange { 
     NSUInteger location; 
     NSUInteger length; 
} NSRange; 

现在告诉我,你认为我们需要的任何指针?为什么我们需要指针?如果你能给出答案,那么这就是你的解决方案。