使用(* name)++可以增加NSObject吗? 例如,如果它是int,则可以使用
进行递增int *i; (*i)++;
但如果它是NSObject,我们如何递增指针?
myClass* p1=array[0];
myClass* p2=array[10];
MyClass* temp=p1;
(*p1)++; //Here an error happen
答案 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循环以多次递增对象的属性或
使用+=
之类的运算符递增一次。再一次,这只能在原始类型上完成。