2010-11-15 46 views
9

Tôi muốn nhận một mảng thuộc tính cho số NSManagedObject của mình để tôi có thể sử dụng KVO để xuất chúng. Tôi có thể tạo một mảng bằng tay và sau đó lặp qua nó, tuy nhiên, tôi muốn tự động nhận danh sách này, sau đó lặp lại.Mảng thuộc tính NSManagedObject

Trả lời

19

NSManagedObject có một thực thể được liên kết với nó. Sử dụng -attributesByName-relationshipsByName của NSEntityDescription. Bạn sẽ nhận lại một từ điển từ mỗi phương thức đó. Chỉ cần hỏi các dicts cho số -allKeys của họ.

+0

Cảm ơn Josh, tôi đã thêm một thẻ khác. Tôi không thấy attributeKeys trong SDK 4.1. Đây có phải là không có sẵn trên iPhone? – Pete

+0

Chính xác. Đó là lý do tại sao việc gắn thẻ là quan trọng. :-) NSEntityDescription không trực tiếp nhưng nó hoạt động tốt. Đoán: Các phương pháp NSObject tôi đã đề cập xuất hiện ở đó đúng với phép thuật KVO, không có sẵn trên iOS. –

+0

Hoàn hảo! Tôi không thể tin rằng tôi đã bỏ qua điều đó. – Pete

4

Cảm ơn Joshua. Đây là mã mà tôi đã sử dụng trong trường hợp bất kỳ ai muốn xem một ví dụ khó khăn:

NSString *entityName = NSStringFromClass([myEntity class]); 
NSEntityDescription *entityDescription = [self entityDescriptionWithEntityName:entityName]; 
NSDictionary *attributes = [entityDescription attributesByName]; 
NSArray *attributeNames = attributes.allKeys; 
Các vấn đề liên quan