2013-03-21 33 views
6

Tôi đang cố gắng sử dụng Magical Record để nhập dữ liệu vào db CoreData của mình.Nhập Bản ghi Magical với dữ liệu hiện có

Tôi đang làm việc trên thực thể Person vào lúc này.

A Person có các thuộc tính firstName, lastName, personID. (Tôi biết tôi không cần idString, tôi không sử dụng nó trong nội bộ, nó được sử dụng để nói chuyện với máy chủ).

Dù sao, nếu tôi đã có người ...

firstName - John 
lastName - Smith 
personID - 1 

Và tôi tải về JSON ...

[ 
    { 
     firstName: John, 
     lastName: Doe, 
     id: 1 
    }, 
    { 
     firstName: Michael, 
     lastName: Caine, 
     id: 2 
    }, 
    { 
     firstName: Angelina, 
     lastName: Jolie, 
     id: 3 
    } 
] 

Tôi muốn nhập khẩu thêm MichaelAngelina và cập nhật John Smith thành John Doe vì nó đã tồn tại với cùng id và personID.

Tôi đã đặt mappedKeyName giữa id và personID.

Có thể thực hiện việc này không? Tôi đã đọc blog này ... http://www.cimgf.com/2012/05/29/importing-data-made-easy/ về việc ánh xạ tự động các tên khóa vv ... và tự hỏi liệu tôi có thể khai thác điều này để làm những gì tôi muốn?

Tôi đã đọc phần về relatedByAttribute từ blog nhưng tôi không chắc mình nên đặt nó ở đâu và phải làm gì?

Tôi có nên đặt nó trên thực thể Người không? Hoặc thuộc tính personID? Và tôi nên đặt nó như thế nào? "ID"? Hay cái gì khác?

+0

Hãy xem [Triển khai Tìm hoặc Tạo hiệu quả] (https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdImporting.html#//apple_ref/ doc/uid/TP40003174-SW4) trong "Hướng dẫn lập trình dữ liệu cốt lõi", mô tả một kỹ thuật tốt. –

+1

Tôi đã sử dụng phương thức này nhờ. Tôi muốn chuyển sang Magical Record để sử dụng các phương thức "nhập tự động" mà họ có. – Fogmeister

Trả lời

6

Tôi không chắc liệu bạn có đang sử dụng cài đặt relatedByAttribute trong vùng userInfo của mô hình Dữ liệu cốt lõi hay không. Bạn không đề cập đến điều đó trong vấn đề của bạn ở đây. Tôi đề nghị bạn kiểm tra lại điều đó. Và để làm rõ, nó được gọi là relatedByAttribute vì chuỗi bạn đưa vào phần giá trị là thuộc tính CoreData liên quan đến các thực thể, không có dữ liệu json (hoặc đối tượng khác). Vì vậy, kiểm tra hai điều đó và nếu vẫn còn một vấn đề, xin vui lòng mở một vé trên github, tốt hơn với một bài kiểm tra đơn vị giúp mô tả vấn đề.

+0

Cảm ơn câu trả lời, tôi đã đọc về relatedByAttribute nhưng nghĩ rằng đó là quan hệ dữ liệu. Dù sao, tôi đã cập nhật câu hỏi của mình. Cảm ơn. – Fogmeister

+0

Tôi đã đọc lại điều này và tôi hoàn toàn bị mất về vị trí tôi nên đặt thuộc tính relatedByAttribute. Đây không phải là mối quan hệ giữa các thực thể Tôi chỉ nhập các thực thể Person đơn từ JSON. Xin vui lòng cho tôi biết nơi tôi cần phải thiết lập các relatedByAttribute và những gì để? Không chắc chắn nếu tôi nên đặt nó trên thực thể hoặc thuộc tính và những gì giá trị để cung cấp cho nó. Trong blog nó chỉ đề cập đến nó trong mối quan hệ nhưng tôi không có. – Fogmeister

+3

Đặt nó trên thực thể. Tôi đã tránh từ "primaryKey" khi thiết lập điều này để tránh xa danh pháp cơ sở dữ liệu. Bạn có thể nghĩ rằng relatedByAttribute là khóa chính mặc dù. – casademora

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