我在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