我在 ios 应用程序中导入数据时遇到问题。
数据是用coredata存储的。我试图用一个按钮导入数据。点击后,数据先存储在一个JSON格式的txt文件中,然后存储到sqllite文件中。
我的问题是这样的,导入这么大的数据很慢,而且用户点击按钮或者等待导入初始数据是不友好的。有没有更好的数据导入方式?
谢谢。
最佳答案
这取决于。例如,您可以只在 – applicationDidFinishLaunching: 或当用户触摸特定按钮时导入数据。
在这两种情况下,我都会在后台导入数据。这使您可以避免 UI 卡住(如果您有大量数据)并显示某种进度指示器。也许用户会更乐意知道发生了什么。
要在后台导入数据,您可以只使用新的 iOS 5 API for Core Data 或按照 importing-and-displaying-large-data-sets-in-core-data/ 上的 Marcus Zarra 教程进行操作.
另一种方法是从预先填充的数据库开始。创建一个虚拟项目,在其中填充该数据库(使用您的 JSON 文件),然后在您的实际应用程序项目中使用该数据库。
希望对您有所帮助。
编辑
It is not user friendly to import the data when the app begins.
为什么不呢?
So I was trying to put the data - the db file into the archive and send it to app store. In this way, I was wondering if I could get the db file during test, which is finished importing the data and the initial data is acceptable. And put this test db file in the archive and publish on appstore. So user do not need to import the data at first. Just use the copy of the testing data
我不确定我是否理解了这里的要点。这里我的意思是 preload and import existing data .当您将应用程序提交到应用程序商店时,您需要将 db 文件与您的应用程序一起发送。例如在应用程序目录中。您也可以在 bundle 中运送它。但在这种情况下要注意,因为 db 文件是只读的(如果你想修改,你需要移动到其他地方)。
我建议您创建一个虚拟项目,因为当我需要创建一个 prepolutade 数据库时,这是我个人的做事方式。这使您可以使项目保持清洁。但是您也可以在您的真实项目中填充该数据库。如果您遵循第一种方式,您只需将 sql 文件移动到应用程序的应用程序目录中,然后让核心数据读取它即可。
关于ios - coredata导入初始数据的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310795/
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco
在我的gem中,我需要yaml并且在我的本地计算机上运行良好。但是在将我的gem推送到rubygems.org之后,当我尝试使用我的gem时,我收到一条错误消息=>"uninitializedconstantPsych::Syck(NameError)"谁能帮我解决这个问题?附言RubyVersion=>ruby1.9.2,GemVersion=>1.6.2,Bundlerversion=>1.0.15 最佳答案 经过几个小时的研究,我发现=>“YAML使用未维护的Syck库,而Psych使用现代的LibYAML”因此,为了解决
我主要使用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
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun