2011-07-04 13 views
10

Bu yüzden CGRects ile dolu bir dizim var. Bu bölüm iyi. Sorun, diziden CGR'leri almaya gittiğimde, garip hatalar alıyorum. Koduma bak. Şimdiden teşekkürler. Bu gibi bir for döngüsü içinde çerçeveyi almak dahaBir CGRect'i bir Dizideki bir NSValue'ye dönüştürme ve bunun için

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

:

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

Birden değişkenler üzerinden dışarı o çizgiyi yayılan farklı varyasyonlar bir demet denedim. Ama anlayamıyorum. Şimdiden teşekkürler.

cevap

15

Dene: ilkel bir C tarzı tipi değil, bir Objective-C nesne çünkü

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

Sen, bir CGRect için geri döndü değil bir işaretçi gerçek CGRect olsun.

Bunun dışında kodunuz doğru görünüyor.

+0

Vay, aptal hissediyorum. Çok teşekkürler. Bu gerçekten bana yardımcı oluyor. – Andrew

+2

Aptal hissetme - meselenin gerçeği, bir C-stili ilkel olanın ve bir Objective-C nesnesinin genellikle pragmatik, performansa bağlı bir karar olmasıdır. Hangi zaman zarfında bir fikir elde edersiniz, ancak adlandırma kurallarında ya da bunun gibi bir şeyde doğal bir fark yoktur, bu yüzden ilk başta iki şeyi karıştırmak kolaydır. – Tommy

+5

Evet, bunu “Subjective-C” olarak adlandırmış olmalılar. –

İlgili konular