2010-05-29 27 views

Trả lời

278

Bạn cần bọc các cấu trúc CG trong các lớp NSValue. Vì vậy:

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

tốt! NSValue rất hữu ích ... nhờ – Joey

+0

ví dụ khác tại đây: 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); 

Bạn nghĩ gì về cách này để lưu trữ ngày 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

Chúng tôi lưu trữ các CGRect, CGPoint, CMTime đối tượng trong một NSMutableArray,

[arrayName addObject:[NSValue valueWithCGPoint:MyCGPoint]]

[arrayName addObject:[NSValue valueWithCGRect:MyCGRect]]

[arrayName addObject:[NSValue valueWithCMTime:MyCMTime]]

[arrayName addObject:[NSValue valueWithCMTimeRange:MyCMTimeRange]]

Các vấn đề liên quan