2011-06-19 25 views
6

Khi tôi cần phải thêm một số nguyên cho một mảng tôi sử dụngiPhone - thêm CGPath vào NSMutableArray ... làm thế nào?

[myArray addObject:[NSNumber numberWithInt:myInt]]; 

nhưng những gì về CGPaths? Làm cách nào để thêm chúng vào mảng?

tôi cần một cái gì đó giống như

"[NSValue valueWithCGPath:myPath]"... ???!!! 

bất kỳ manh mối? nhờ

+2

Bạn có thể muốn xem câu hỏi này: http://stackoverflow.com/questions/4240481/how-to-store-cggradientref-in-nsmutablearray – albertamg

+0

điều này thật tuyệt vời, cảm ơn. Nó sẽ phục vụ cho các công cụ khác tôi đang làm, nhưng đối với trường hợp này nó bị đổ vỡ, bởi vì sau khi thêm đối tượng vào mảng tôi lưu trữ nó. Như CGPaths là CFType, các sự cố lưu trữ ... nhưng dù sao, như tôi đã nói, nó sẽ phục vụ cho các mục đích khác trong cùng một ứng dụng. Cảm ơn!!!!! +1 – SpaceDog

Trả lời

11

Cách đơn giản nhất nếu bạn có thể nhắm mục tiêu iOS 3.2 hoặc cao hơn là để quấn CGPathRef trong một UIBezierPath:

[myArray addObject:[UIBezierPath bezierPathWithCGPath:myPath]]; 

Nếu bạn cần hỗ trợ các phiên bản iOS trước đó, bạn có thể sử dụng một CFArray thay vì NSArrayCGPath có nguồn gốc từ CFType.

+0

Cảm ơn. Tôi đã thử nhưng vấn đề của tôi là điều này: sau khi thêm tất cả các đường dẫn đến mảng, sử dụng mã bạn đăng, tôi lưu trữ nó bằng cách sử dụng NSKeyedArchiver. Khi tôi cố gắng hủy lưu trữ, nó bị treo. Có cách nào để chuyển đổi đường dẫn đến một điều khác (thay vì một UIBezierPath) và sau đó lưu trữ nó trên mảng? Tôi chỉ xây dựng mảng này cho mục đích lưu trữ. – SpaceDog

+0

Bạn có chắc chắn bản lưu trữ thực sự tạo ra bất kỳ thứ gì không? Có thể bạn nên đăng câu hỏi riêng, cách lưu trữ và khôi phục UIBezierPath. Bạn có thể phải lưu trữ các điểm và siêu dữ liệu đường dẫn theo cách thủ công. –

+0

Kendall - ** [ở đây là] (http://stackoverflow.com/questions/6400284/iphone-storing-and-retrieving-a-uibezierpath-with-nskeyedarchiver-crashing) ** mà không cần bất kỳ giải pháp làm việc nào. Có, kho lưu trữ đang lưu trữ dữ liệu và dữ liệu bezier đang tải thành công vào biến NSData khi hủy lưu trữ, nhưng khi tôi cố gắng giải mã dữ liệu và tạo ra một UIBezierPath, nó bị treo. – SpaceDog

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