2010-05-29 8 views

Odpowiedz

278

Musisz zawinąć struktury CG w klasach NSValue. Więc:

NSMutableArray* array = [NSMutableArray mutableArray]; 
[array addObject:[NSValue valueWithCGRect:CGRectMake(0,0,10,10)]]; 
CGRect someRect = [[array objectAtIndex:0] CGRectValue]; 
+0

Dobrze! NSValue jest tak przydatna ... dzięki – Joey

+0

więcej przykładów tutaj: http://iosdevelopertips.com/cocoa/storing-cgpoint-cgsize-and-cgrect-in-collections-using-nsvalue.html – WINSergey

12
CGRect rect = CGRectMake(5, 5, 40, 30); 
NSString* rectAsString = NSStringFromCGRect(rect); 
CGRect original = CGRectFromString(rectAsString); 

Co sądzisz o tym sposobem przechowywania dat CGRect?

1
Store string in array.and then get back string and convert that in CGRect back as per the need. 
CGRect rect = CGRectMake(5, 5, 40, 30); 
NSString* rectAsString = NSStringFromCGRect(rect); 
NSMutableArray* array = [NSMutableArray mutableArray]; 
[array addObject:rectAsString]; 

For converting string in CGRect back use:- 
CGRect rect9 = CGRectFromString(rectAsString); 
2

Przechowujemy CGRect, CGPoint, CMTime obiektów w NSMutableArray,

[arrayName addObject:[NSValue valueWithCGPoint:MyCGPoint]]

[arrayName addObject:[NSValue valueWithCGRect:MyCGRect]]

[arrayName addObject:[NSValue valueWithCMTime:MyCMTime]]

[arrayName addObject:[NSValue valueWithCMTimeRange:MyCMTimeRange]]

Powiązane problemy