jjzjj

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

coder 2023-09-06 原文

我正在从服务器获取值并将它们存储到 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 文件> 转到我找到的表:

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

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

我正在存储这样的值:

    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/

有关ios - 我的所有数据都没有存储在 Coredata 中的更多相关文章

  1. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 难道Lua没有和Ruby的method_missing相媲美的东西吗? - 2

    我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/

  4. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  5. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  6. ruby-on-rails - 跳过状态机方法的所有验证 - 2

    当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. ruby - Nokogiri 剥离所有属性 - 2

    我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog

  9. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  10. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

随机推荐