Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将NSArray值强制转换为指针的正确方法_Iphone_Ios_Cocoa Touch_Nsarray - Fatal编程技术网

Iphone 将NSArray值强制转换为指针的正确方法

Iphone 将NSArray值强制转换为指针的正确方法,iphone,ios,cocoa-touch,nsarray,Iphone,Ios,Cocoa Touch,Nsarray,将NSArray值强制转换为引用的正确语法是什么,即: &([_colors objectAtIndex:0]) 我正在检索的对象是CGColorRef。尝试将上述内容作为参数发送到方法,而不将值存储到单独的值中。参数是一个(CGColorRef*)。CGColorRef本身实际上是一个指针,因此您可以按原样将其作为参数发送。您调用的方法/函数似乎是“通过引用”返回一个CGColorRef对象。由于[NSArray objectAtIndex:的返回值只是一个表达式,而不是一个变量,因

NSArray
值强制转换为引用的正确语法是什么,即:

&([_colors objectAtIndex:0])

我正在检索的对象是
CGColorRef
。尝试将上述内容作为参数发送到方法,而不将值存储到单独的值中。参数是一个(CGColorRef*)。

CGColorRef本身实际上是一个指针,因此您可以按原样将其作为参数发送。

您调用的方法/函数似乎是“通过引用”返回一个
CGColorRef
对象。由于
[NSArray objectAtIndex:
的返回值只是一个
表达式,而不是一个变量,因此不能获取其地址。你能做的就是

CGColorRef color;
CallTheFunctionToObtainThe(&color);
[_colors replaceObjectAtIndex:0 withObject:color]

当然,要做到这一点,
\u colors
必须是
NSMutableArray

的一个实例,您如何将CGColorRef值放入NSArray?它们不基于NSObject,因此您必须包装它们。这意味着你不能随心所欲地把它弄出来。为什么不需要一个单独的变量?这将使它更易于使用、阅读和调试。@rmaddy实际上这是可能的。例如,在Max-Cool下阅读此答案。我学到了一些新东西。谢谢。@maddy CoreFoundation对象与Objective-C对象兼容。是的,这是一个丑陋的黑客,但它的工作。假设它不是一个colorRef,我将如何做到这一点,你知道吗?在这个例子中,使用CGColorRef,使用指针是我能够得到我想要的工作,工作的唯一方法。我不知道为什么…我像你说的那样尝试过,因为它是指针,但是当我更改数组中的值时,它不会更改我将指针发送到的属性。也许你应该使用UIColor而不是CGCOLOR当数组中的值更改时,这是我更改其他值的唯一方法(我通过参数发送到的)是如果我将该属性声明为CGColorRef*,然后发送它&colorYeah可能……但此时我必须更改太多代码。