2014-07-01 39 views
1

我使用的代碼這一點點:Xcode的編譯器不接受三元運算

CGFloat gradientLocations[2] = {1.0f, 0.0f}; 

其可惜的有一個錯誤,因爲在一個方向上的梯度分和不正確地旋轉。所以,我想與方位是這樣解決這個問題:

CGFloat gradientLocations[2] = self.isAzimuthDown ? {0.0f, 1.0f} : {1.0f, 0.0f}; 

但我不斷收到錯誤,我很想念「:」我不相信我是...我的問題是 - 什麼是錯的它以及如何解決它?

+0

剛剛搜索谷歌,發現這個http://stackoverflow.com/q/15877560/468724 –

+0

我搜索了一些不同的東西,因爲我以爲我正在訪問一個項目排在第二位的索引(我知道非常錯誤)。所以我實際上並不知道,我正在尋找的是「數組初始化器」相關主題。另外我GOOGLE了xcode,不是純C ... – Michal

+0

無論如何,感謝單挑@InderKumarRathore – Michal

回答

1

該語言不支持數組初始值設定項中的條件表達式。

使用memcpydemo):

CGFloat gradientLocations[2]; 
memcpy(gradientLocations, self.isAzimuthDown ? (CGFloat[]){0.0f, 1.0f} : (CGFloat[]){1.0f, 0.0f}, sizeof(gradientLocations)); 

在標量表達式中使用條件(demo):可以通過使用memcpy,或者通過使用單一的初始化內部條件表達式爲每個單獨的元件固定此

CGFloat gradientLocations[2] = {self.isAzimuthDown ? 0.0f : 1.0f, self.isAzimuthDown ? 1.0f : 0.0f}; 
+0

哦,沒想到,謝謝你的幫助! :) – Michal