我在CoreData模型(產品和形象)兩個實體,有產品之間(一個)一個一對多的關係-images(很多)。我也分類了我的實體,我試圖從json文件填充數據庫;但是我似乎無法理解如何將圖像插入到與產品相關的圖像中,以便當我在應用程序中選擇該產品時,我會獲得所有相關圖像。值插入相關實體在CoreData
extension Products {
@NSManaged var price: NSNumber?
@NSManaged var stock: NSNumber?
@NSManaged var desc: String?
@NSManaged var name: String?
@NSManaged var images: NSSet?
@NSManaged var sales: NSSet?
}
extension Images {
@NSManaged var image: String?
@NSManaged var products: Products?
}
然後JSON文件數據(我沒有與NSJSONObjectWithData連載任何問題:
{ 「記錄」:[{ 「名」: 「蘋果iMac 27英寸」, 「描述「:」令人驚歎的一體機iMac採用美觀的27英寸Retina 5K寬屏顯示器,四核英特爾酷睿i5處理器和配備2GB GDDR5顯存的AMD Radeon R9 M380圖形處理器。「, 」image「: [「imac1.jpg」,「imac2.jpg」], 「庫存」:32, 「price」:1699.00 },{ 「名」:「蘋果iPhone 6S加128 GB」, 「說明」:「你用iPhone 6S另外的那一刻,你知道你從來沒有覺得這樣的事情。只需一次按下,3D Touch就能讓您比以往任何時候都做得更好。現場照片以非常生動的方式將您的回憶帶入生活。而這僅僅是一個開始。深入瞭解iPhone 6s Plus,您將在各個層面找到創新。「, 」image「:[」iphone6splus1.jpg「,」iphone6splus2.jpg「,」iphone6splus3.jpg「,」iphone6splus4.jpg「 ], 「股票」:144, 「價格」:1042.00 } ]}
這就是我只使用檢查數據庫爲空後,填充在AppDelegate的數據庫功能
func fillDatabase() {
let jsonURL = NSBundle.mainBundle().URLForResource("products", withExtension: "json");
let data = NSData(contentsOfURL: jsonURL!);
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions(rawValue: 0)) as! Dictionary<String, AnyObject>;
let recordset = jsonData["records"] as! Array<Dictionary<String, AnyObject>>;
for record in recordset {
let product = Products(context: managedObjectContext);
if let name = record["name"] {
product.name = name as? String;
}
if let stock = record["stock"] as? NSNumber {
product.stock = stock;
}
if let price = record["price"] as? Double {
product.price = price;
}
if let desc = record["description"] as? String {
product.desc = desc;
}
if let images = record["image"] as? NSMutableArray {
// *********************************************************
// Im getting the array of images, but dont know where to go from here.
}
do {
try managedObjectContext.save();
} catch let error as NSError {
print(error.debugDescription);
}
}
} catch let error as NSError {
print("error parsing json object: \(error.debugDescription)");
return;
}
}
感謝您的答覆,圖像存儲爲字符串,因爲它們包含在圖像資產中。所以Images.image屬性是Model中的字符串。一個核心問題只是爲了澄清我的理解是正確的。當我有兩個實體之間的關係時,我應該在關係中輸入公共數據而不是第二個表格。因爲如果我進入「多」表,他們不會與「一」表相關的權利? – Maz
我真的不知道你在說什麼......你有沒有得到我答案的基本想法? –
我的意思是說,我沒有將UIImage存儲到數據庫中,我只是將文件名存儲在字符串中。我會在應用程序中將它轉換爲UIImage – Maz