日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ios realm 文件_关于ios:具有后台进程的Realm实例会丢失数据

發(fā)布時(shí)間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios realm 文件_关于ios:具有后台进程的Realm实例会丢失数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我將Realm for Swift與僅內(nèi)存配置一起使用。 由于在后臺(tái)線程中更新數(shù)據(jù)庫(kù),因此每次使用時(shí)都會(huì)創(chuàng)建一個(gè)Realm實(shí)例。 在Realm文檔中提到了此問(wèn)題,這里還有另一個(gè)問(wèn)題https://stackoverflow.com/a/45375608/613121。

但是通過(guò)測(cè)試數(shù)據(jù)庫(kù),我注意到了不可預(yù)測(cè)的行為。 有時(shí)數(shù)據(jù)庫(kù)是空的,更新會(huì)重新填充數(shù)據(jù)庫(kù)而不是更新。 原因可能是該領(lǐng)域在撰寫之后被釋放了。

解決方案可能是在主線程中保留強(qiáng)引用。 我將Realm配置保存為單例。 單例返回具有相同配置的新Realm進(jìn)行更新,并強(qiáng)烈引用另一個(gè)Realm以防止丟失,這是否安全?

在stackoverflow.com/questions/41002022/中,在主線程上出現(xiàn)單例提示的情況下討論了此問(wèn)題。我的解決方法是在某個(gè)線程的配置單例中保留強(qiáng)大的參考。所有工作都是通過(guò)新的領(lǐng)域完成的。所以我完全不混淆線程-我希望。也許我應(yīng)該在主線程上創(chuàng)建帶有調(diào)度的單例。并且僅當(dāng)調(diào)用者來(lái)自另一個(gè)線程時(shí)才創(chuàng)建新的Realm!

雖然我理解這個(gè)問(wèn)題,但用例尚不清楚。在某些情況下,單例模式可能是一個(gè)解決方案,但正如David在該回答中所提到的那樣,以線程安全的方式使用Realm的最佳方法是使用let realm = try為您的Realm創(chuàng)建新的引用!每次在線程之間移動(dòng)時(shí),都會(huì)使用Realm()。如果遇到意外結(jié)果,則問(wèn)題可能出在其他地方。添加一些說(shuō)明問(wèn)題的代碼可能會(huì)有所幫助。請(qǐng)花點(diǎn)時(shí)間回顧一下如何創(chuàng)建最小,完整和可驗(yàn)證的示例

謝謝杰伊。我每次使用新的Realm實(shí)例時(shí)都遇到了問(wèn)題。這似乎工作正常。但是在測(cè)試數(shù)據(jù)庫(kù)時(shí),它是從后臺(tái)線程寫入數(shù)據(jù)庫(kù)并逐步通過(guò)調(diào)試器后為空的。因此,可能必須強(qiáng)烈參考具有相同配置的領(lǐng)域。現(xiàn)在看來(lái)可行。

聽(tīng)起來(lái)應(yīng)該不錯(cuò)。 您必須嘗試一下,這可能比在這里等待明確的答案要快。

我將編寫一個(gè)singleton類,作為構(gòu)造函數(shù)的一部分,它定義Realm配置并將其存儲(chǔ),還打開(kāi)并存儲(chǔ)該領(lǐng)域的實(shí)例。 然后,我向該類添加一個(gè)訪問(wèn)器,以供您的線程使用; 它將使用相同的配置返回領(lǐng)域的新實(shí)例。 當(dāng)那些超出范圍(并且您應(yīng)該允許它們超出范圍)時(shí),由于單例實(shí)例保持其引用,您的領(lǐng)域?qū)⒈3植蛔儭?/p>

我可能錯(cuò)誤地讀了您的第一個(gè)參考問(wèn)題,但這與內(nèi)存領(lǐng)域無(wú)關(guān),因此不要求您在某處保留參考。

是的,我嘗試過(guò),它似乎可以工作。 希望在隨后被銷毀的后臺(tái)線程中寫入新的Realm不會(huì)造成任何問(wèn)題。

總結(jié)

以上是生活随笔為你收集整理的ios realm 文件_关于ios:具有后台进程的Realm实例会丢失数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。