Objective c float dashPattern[]={10,5};

Objective c float dashPattern[]={10,5};,objective-c,c,variables,methods,Objective C,C,Variables,Methods,希望有人能帮助我理解这个变量: float dashPattern[] = {10, 5}; 这被认为是一个变量?对吧? 它做了我想做的,但我不知道为什么。我知道它基于UIBezierPath方法: - (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase 这是一种方法吗?对吗 首先,我想确定我是用正确的名称引用代码的,所以请让我知道我正确地调用了上面的变量和方法,如果我错

希望有人能帮助我理解这个变量:

float dashPattern[] = {10, 5};
这被认为是一个变量?对吧?

它做了我想做的,但我不知道为什么。我知道它基于
UIBezierPath
方法:

- (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase
这是一种方法吗?对吗

首先,我想确定我是用正确的名称引用代码的,所以请让我知道我正确地调用了上面的变量和方法,如果我错了,请纠正我

其次,我从来没有使用过[]和{}设置变量,也不明白这里发生了什么。我仍在努力扎实地掌握一些objective-c原则,我想理解理论和概念,而不仅仅是重复我在网上找到的代码

[
dashPattern
]是否被视为变量?对吧?

dashPattern
是一个数组变量。数组有两个元素,它们的值是您在初始值设定项中提供的

[
setLineDash:count:phase:
]是一种方法吗?对吗

我从未使用过[]和{}设置变量,也不明白这里发生了什么

变量名称后的
[]
表示该变量是一个数组,其项数通过初始值设定项提供。
{}
包含初始值设定项值。数组元素的数量将等于您在初始值设定项中提供的值的数量。通过明确指定大小,可以强制使用不同数量的元素,例如

float dashPattern[3] = {10, 5};

在上述情况下,数组将用第三个元素扩展,即使初始值设定项中只有三个值。

Yes<代码>浮点模式[]={10,5}是纯C。与Objective-C无关。dasblinkenlight对其含义有完整的解释。非常感谢!这是一个非常清楚和可以理解的答案。还有别的方法写这个吗?有没有一种方法可以直接为setDashLine编写此代码:而不是先声明一个变量,然后调用dashPatern变量?还有一件事。。。因为,正如Steve在上面所评论的,这是纯C语言,所以ARC是否为它处理内存?我需要做些什么来管理内存吗?我似乎记得在我读过的一本书的某个地方,ARC不能处理C内容。@ShannonBuckland不幸的是,
{val1,val2}
语法只能在初始化器中使用。在Objective C中,C数组没有“aggregare”语法。这确实是一个纯C,因此ARC不管理数组的内存。如果这是一个本地数组变量,则内存分配在“自动”内存区域,即CPU堆栈上。只要包含声明的函数或方法正在执行,它就有效。一旦函数/方法退出,内存将自动回收。