Tôi đang làm việc trên ứng dụng RestKit đầu tiên của mình và tôi sử dụng CoreData cho bộ nhớ đệm cục bộ. Trong đó tôi có mối quan hệ nhiều-nhiều giữa Bài viết < < --- >> Danh mục. Mối quan hệ này được gọi là bài đăng và danh mục.RestKit lập bản đồ nhiều người, làm cách nào?
Trong cuộc gọi JSON của tôi, tôi nhận được id cho các danh mục như sau: {"post": [...] "categories":[1,4] [...]
, trong đó 1 và 4 là các id.
Tôi có một tùy chỉnh Post
mô hình đối tượng được thừa kế từ NSManagedObject
, trong đó tôi có một tài sản cho các hạng mục, như thế này:
@interface Post : NSManagedObject
[...]
@property (nonatomic, retain) NSSet *categories;
[...]
tôi làm điều tương tự trong một đối tượng tùy chỉnh loại mô hình.
ánh xạ của tôi hiện trông như thế này:
RKManagedObjectMapping *categoryMapping = [RKManagedObjectMapping mappingForClass:[Category class] inManagedObjectStore:objectManager.objectStore];
categoryMapping.primaryKeyAttribute = @"categoryId";
categoryMapping.rootKeyPath = @"categories";
[categoryMapping mapKeyPath:@"id" toAttribute:@"categoryId"];
[categoryMapping mapKeyPath:@"name" toAttribute:@"name"];
[...]
RKManagedObjectMapping* postMapping = [RKManagedObjectMapping mappingForClass:[Post class] inManagedObjectStore:objectManager.objectStore];
postMapping.primaryKeyAttribute = @"postId";
postMapping.rootKeyPath = @"post";
[postMapping mapKeyPath:@"id" toAttribute:@"postId"];
[...]
[postMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"];
[...]
// Categories many-to-many.
[postMapping mapKeyPath:@"categories" toRelationship:@"categories" withMapping:categoryMapping];
Khi tôi chạy này, tôi nhận được lỗi: '[<__NSCFNumber 0x6c625e0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key id.'
Tôi thực sự sẽ đánh giá cao nếu có ai có thể cho tôi bất kỳ manh mối về cách để lập bản đồ mối quan hệ này.
Cảm ơn, quyết định thay đổi JSON tới "" danh mục ": [{" category_id ": 1}, {" category_id ": 4}]', bạn có biết cách thức và thời điểm tôi nên điền bảng tham gia không? Tôi hiện chỉ tìm nạp các danh mục. Cảm ơn! – Anders
Bảng kết nối là gì? Đây thực sự là một câu hỏi khác. –
Vâng, cảm ơn. Một bảng nối là bảng giữa hai thực thể nhiều đến nhiều, trong đó các khóa chính từ hai bảng được lưu trữ. Nó thực sự populates này tham gia bảng khi tôi tải bài viết, nhưng sau đó nó cũng tạo ra hàng mới trong mô hình thể loại của tôi vì lý do nào. Có lẽ sẽ hỏi một câu hỏi khác cho vấn đề đó. Nhưng việc thay đổi JSON dường như có ích, không có lỗi nữa. Cảm ơn! – Anders