ios - 我的所有数据都没有存储在 Coredata 中

标签 ios swift sqlite core-data

我正在从服务器获取值并将它们存储到 Coredata。问题来了,当我从服务器获取数据并将它们存储在 coredata 中时,它表明我已经将我的值存储为所有值......

这些是我存储的数据:

  [{
    adName = Britannia;
    adType = Video;
    addescription = "Choco Muffills come with thick chocolate filling that will take you by surprise.";
    clientImage = "http://api.weoneapp.com:8595/1464528609370.png";
    clientName = Britannia;
    endDate = "Just now";
    entryId = 1478230186228;
    likeFlag = 0;
    mainImage = "";
    newAdvertisement = 1;
    noOfCount = 1367;
    noOfLike = 2783;
    seenAdvertisement = 0;
    smilURL = "http://52.66.101.222:1935/vod/_definst_/1478230186228/smil:1478230186228.smil/playlist.m3u8";
    sortDate = "2016-11-03T19:27:00.000Z";
    startDate = "2016-11-03T19:27:00.000Z";
    subTitle = "Britannia Cake Muffills";
    thumbNail = "http://52.66.101.222:8595/video/1478230186228/1478230186228_thumbnail.png";
    videoDownloadUrl = "http://52.66.101.222:8595/video/1478230186228/1478230186228_source.mp4";
}, {
    adName = "Kwality Walls";
    adType = Video;
    addescription = "Paddle Pop Yummy Delicious Dessert - A delicious, colourful and yummy dessert ... Walls India \U00b7 Kulfeez from Kwality Walls India \U00b7";
    clientImage = "http://api.weoneapp.com:8595/1464524885184.jpg";
    clientName = "Kwality Walls";
    endDate = "Just now";
    entryId = 1478230623594;
    likeFlag = 0;
    mainImage = "";
    newAdvertisement = 1;
    noOfCount = 1281;
    noOfLike = 2618;
    seenAdvertisement = 0;
    smilURL = "http://52.66.101.222:1935/vod/_definst_/1478230623594/smil:1478230623594.smil/playlist.m3u8";
    sortDate = "2016-11-03T18:36:00.000Z";
    startDate = "2016-11-03T18:36:00.000Z";
    subTitle = "Paddle Pop Jiggly Jelly";
    thumbNail = "http://52.66.101.222:8595/video/1478230623594/1478230623594_thumbnail.png";
    videoDownloadUrl = "http://52.66.101.222:8595/video/1478230623594/1478230623594_source.mp4";
}, {
    adName = "Cadbury Dairy Milk";
    adType = Video;
    addescription = "Your favourite chocolate is now more chocolatey.";
    clientImage = "http://api.weoneapp.com:8595/1464017173884.jpg";
    clientName = Cadbury;
    endDate = "Just now";
    entryId = 1478230473291;
    likeFlag = 0;
    mainImage = "";
    newAdvertisement = 0;
    noOfCount = 1310;
    noOfLike = 2600;
    seenAdvertisement = 1;
    smilURL = "http://52.66.101.222:1935/vod/_definst_/1478230473291/smil:1478230473291.smil/playlist.m3u8";
    sortDate = "2016-11-03T18:32:00.000Z";
    startDate = "2016-11-03T18:32:00.000Z";
    subTitle = "Cadbury Dairy Milk";
    thumbNail = "http://52.66.101.222:8595/video/1478230473291/1478230473291_thumbnail.png";
    videoDownloadUrl = "http://52.66.101.222:8595/video/1478230473291/1478230473291_source.mp4";
}]

现在,当我转到位于以下位置的 .sqlite 文件夹时:/Users/Johnn/Library/Developer/CoreSimulator/Devices/0DF66BFE-6076-45E9-8325-D61F1C738DFA/data/Containers/Data/Application/DC3F7B17-1172-4AE3-BC3B-217624C21AA5/Documents/AppCoreData.sqlite

然后打开这个 .sqlite 文件> 转到我找到的表: enter image description here

只有两个值被存储我最后一个条目的值是空的。

我不知道这背后的原因是什么,为什么我的数组的最后一个值没有存储在数据库中......

我正在存储这样的值:

    class func createInManagedObjectContext(nameOfAdvert: String, thumbnail: String, fileName: String, videoDownloadUrl: String, subTitle: String, adType: String, mainImage: String, noOfLike: NSNumber, entryId: String, likeFlag: Bool, startDate: String, endDate: String, noOfCount: NSNumber ,clientName: String, clientImage: String, adDesc: String, sortDate: String, newAdvertisement: Bool, seenAdvertisement: Bool) -> Tube {

    let managedObjectContext = DataAccess.shared.managedObjectContext

    let newItems = NSEntityDescription.insertNewObjectForEntityForName("Tube", inManagedObjectContext: managedObjectContext) as! Tube

    do {
        try managedObjectContext.save()

        newItems.adName = nameOfAdvert
        newItems.thumbNail = thumbnail
        newItems.smilURL = fileName
        newItems.videoDownloadUrl = videoDownloadUrl
        newItems.subTitle = subTitle
        newItems.adType = adType
        newItems.mainImage = mainImage
        newItems.noOfLike = noOfLike
        newItems.entryId = entryId
        newItems.likeFlag = likeFlag
        newItems.startDate = startDate
        newItems.endDate = endDate
        newItems.noOfCount = noOfCount
        newItems.clientImage = clientImage
        newItems.clientName = clientName
        newItems.addescription = adDesc
        newItems.sortDate = sortDate
        newItems.newAdvertisement = newAdvertisement
        newItems.seenAdvertisement = seenAdvertisement

    } catch let error as NSError  {
        print("Could not save \(error), \(error.userInfo)")
    }
    print("-----------------------------")
    print(newItems)
    return newItems
}

我不知道为什么所有数据都没有保存在核心数据中。任何帮助将不胜感激。

提前致谢

最佳答案

请写下这段代码:->

在插入数据后编写 try managedObjectContext.save()

class func createInManagedObjectContext(nameOfAdvert: String, thumbnail: String, fileName: String, videoDownloadUrl: String, subTitle: String, adType: String, mainImage: String, noOfLike: NSNumber, entryId: String, likeFlag: Bool, startDate: String, endDate: String, noOfCount: NSNumber ,clientName: String, clientImage: String, adDesc: String, sortDate: String, newAdvertisement: Bool, seenAdvertisement: Bool) -> Tube {

let managedObjectContext = DataAccess.shared.managedObjectContext

let newItems = NSEntityDescription.insertNewObjectForEntityForName("Tube", inManagedObjectContext: managedObjectContext) as! Tube

    newItems.adName = nameOfAdvert
    newItems.thumbNail = thumbnail
    newItems.smilURL = fileName
    newItems.videoDownloadUrl = videoDownloadUrl
    newItems.subTitle = subTitle
    newItems.adType = adType
    newItems.mainImage = mainImage
    newItems.noOfLike = noOfLike
    newItems.entryId = entryId
    newItems.likeFlag = likeFlag
    newItems.startDate = startDate
    newItems.endDate = endDate
    newItems.noOfCount = noOfCount
    newItems.clientImage = clientImage
    newItems.clientName = clientName
    newItems.addescription = adDesc
    newItems.sortDate = sortDate
    newItems.newAdvertisement = newAdvertisement
    newItems.seenAdvertisement = seenAdvertisement

do {
    try managedObjectContext.save()
} catch let error as NSError  {
    print("Could not save \(error), \(error.userInfo)")
}
print("-----------------------------")
print(newItems)
return newItems

关于ios - 我的所有数据都没有存储在 Coredata 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40419687/

相关文章:

android - 数据库未在 OnePlus 2 中正确复制

mysql - RDBMS 是否保证行级原子性?

ios - Rx swift : Need help using flatMap and reduce

ios - 无法使用iOS SDK从此云代码获取PFObject

ios - 将导航栏项目按钮设置为新标题

ios - 使用动画显示颜色序列(Swift)

Android 如何在 sqlite 中检索前 5 条记录和最后 5 条记录

iphone - 如何在 Google Analytics for iOS 中设置页面标题?

ios - 面向初学者的变量赋值和字符串数组 Obj-c (iOS)

ios - 基于时间的问候应用程序无法正常工作, swift