NSObject递增指针

时间:2014-01-17 15:56:08

标签: ios objective-c pointers

使用(* name)++可以增加NSObject吗? 例如,如果它是int,则可以使用

进行递增
int *i; (*i)++;

但如果它是NSObject,我们如何递增指针?

myClass* p1=array[0];
myClass* p2=array[10];
MyClass* temp=p1;
(*p1)++; //Here an error happen

2 个答案:

答案 0 :(得分:2)

这一行:

int *i; (*i)++;

有效,因为i是指向int的指针。 (*i)++表示获取i指向的对象(int)并递增它。正如你可以增加一个int,这是有效的。

现在问题的其余部分:

myClass* p1=array[0];

表示p1是指向myClass对象

的指针

(*p1)++;

表示将对象放在p1个点(这是一个myClass实例)并递增它。但是,增加一个对象是没有意义的;所以这不会起作用。

你究竟想做什么?

答案 1 :(得分:1)

我认为你不能增加像这样的对象类型,因为编译器不会知道 如何 来增加对象。但你绝对可以使用原始类型,如int和float。

然而:您可以实现for循环以多次递增对象的属性或 使用+=之类的运算符递增一次。再一次,这只能在原始类型上完成。