Objective c 在目标C中将许多变量设置为0

Objective c 在目标C中将许多变量设置为0,objective-c,Objective C,我只是想知道是否有一个特殊的方法或调用将许多变量设置为0。我有20个,代码看起来很难看,因为我把它们对齐如下: x=0; y=0; z=0; etc... 因为有这么多方便的功能,我想可能会有 谢谢 PD:我使用的是Objective C,Xcode 4.2,如果它们是相同的类型(或者可以强制为相同的类型),那么您可以始终执行以下操作: x = y = z = 0; 本质上是一样的,但是水平:-)如果它们是相同的类型(或者可以强制为相同的类型),那么您可以始终执行以下操作: x = y =

我只是想知道是否有一个特殊的方法或调用将许多变量设置为0。我有20个,代码看起来很难看,因为我把它们对齐如下:

x=0;
y=0;
z=0;
etc...
因为有这么多方便的功能,我想可能会有

谢谢

PD:我使用的是Objective C,Xcode 4.2,如果它们是相同的类型(或者可以强制为相同的类型),那么您可以始终执行以下操作:

x = y = z = 0;
本质上是一样的,但是水平:-)

如果它们是相同的类型(或者可以强制为相同的类型),那么您可以始终执行以下操作:

x = y = z = 0;

它本质上是一样的,但水平:-)

目标-C是C,所以如果C可以说:
x=y=z=0
Objective-C也是如此。

Objective-C是C,所以如果C可以说:
x=y=z=0
Objective-C也是如此。

如果您使用的是NSArray,
,您不能使用原语类型

所以这个答案不适用于你的例子,
但是如果你有一个元素的NSArray,你可以使用下面的方法,这是非常有用的

向元素发送消息
–makeObjectsPerformSelector:
–makeObjectsPerformSelector:withObject:
–enumerateObjectsUsingBlock:
–EnumerateObjectsWithoOptions:使用block:
–EnumerateObjectSatiIndex:选项:使用块:


如果您使用的是NSArray,
,您不能将其与原语类型一起使用

所以这个答案不适用于你的例子,
但是如果你有一个元素的NSArray,你可以使用下面的方法,这是非常有用的

向元素发送消息
–makeObjectsPerformSelector:
–makeObjectsPerformSelector:withObject:
–enumerateObjectsUsingBlock:
–EnumerateObjectsWithoOptions:使用block:
–EnumerateObjectSatiIndex:选项:使用块:


视情况而定。如果您的变量具有相同的类型,并且需要在整个过程中进行统一处理,则可以将它们合并成一个数组(不是NSArray,而是一个基本数组),并使用memset()将其归零

如果它们属于不同的整数类型,并且具有相同的生存期和可见性,则可以将它们设置为结构并使用memset()

如果它们都是整数,并且恰好是一个目标C类中的IVAR,那么它们在类初始化时就归零了


如果唯一的共同点是它们需要同时归零,那么不要偷懒,写一行
a=b=c=0
。如果您的变量具有相同的类型,并且需要在整个过程中进行统一处理,则可以将它们合并成一个数组(不是NSArray,而是一个基本数组),并使用memset()将其归零

如果它们属于不同的整数类型,并且具有相同的生存期和可见性,则可以将它们设置为结构并使用memset()

如果它们都是整数,并且恰好是一个目标C类中的IVAR,那么它们在类初始化时就归零了


如果唯一的共同点是它们需要同时归零,那么不要偷懒,写一行
a=b=c=0

噢,哈哈,太简单了,没想到。再一次,我没有真正理解objective c和c之间的区别(除了on之外,它似乎更面向对象)。不知道超集是什么意思。在这种情况下,Objective-C是C的超集,因为它包含C的所有特性(它的所有特性“集”),但增加了它自己的一些特性(例如,面向对象编程特性)-它的特性“集”包含C的所有特性,再加上一些特性。如果你感兴趣,这一切都与你有关。哦,哈哈,太简单了,从没想过。再一次,我没有真正理解objective c和c之间的区别(除了on之外,它似乎更面向对象)。不知道超集是什么意思。在这种情况下,Objective-C是C的超集,因为它包含C的所有特性(它的所有特性“集”),但增加了它自己的一些特性(例如,面向对象编程特性)-它的特性“集”包含C的所有特性,再加上一些特性。如果你感兴趣,这一切都与你有关。