2011-07-04 60 views
10

所以我有一個數組,其中包含CGRects。那部分很好。問題是當我從數組中檢索CGRects時,出現奇怪的錯誤。看看我的代碼。提前致謝。將CGRect轉換爲數組中的NSValue,反之亦然

NSArray *frameLocations = [NSArray arrayWithObjects: 
          [NSValue valueWithCGRect:CGRectMake(20, 20, 121, 124)], 
          [NSValue valueWithCGRect:CGRectMake(176, 20, 121, 124)], 
          nil]; 

比我得到的幀在for循環中,像這樣:

CGRect *imageFrame = [[frameLocations objectAtIndex:i] CGRectValue]; 

我已經嘗試了很多不同的變化,傳播該行出過多個變量。但我似乎無法得到它。提前致謝。

回答

15

嘗試:

CGRect imageFrame = [[frameLocations objectAtIndex:i] CGRectValue]; 

你得到一個實際的CGRect回來,而不是一個指針的CGRect,因爲它是一個原始的C風格的類型,而不是一個Objective-C的對象。

除此之外,您的代碼看起來正確。

+0

哇,我覺得啞巴。非常感謝。這真的幫助我。 – Andrew

+2

不要覺得愚蠢 - 事情的真相是,什麼是C風格的原語,什麼是Objective-C對象,通常只是一個務實的,與性能有關的決定。你會感覺到哪些是隨着時間的推移,但是命名約定或類似的東西沒有固有的差異,所以很容易混淆兩者。 – Tommy

+5

是的,他們應該稱之爲主觀-C。 –

相關問題