我有一個NSManagedObject
子類來表示Flickr上的一個人。我必須通過URL請求獲取所有要存儲在互聯網核心數據中的屬性。我想把這些函數從Person類中的Web上抓取數據。但是,請求將異步完成,並且屬性將在完成塊中的對象上設置。這是否會導致錯誤,因爲核心數據不是線程安全的?最好是有一個獨立的類來加載,還是子類可以工作?你可以把網絡方法放在一個NSManagedObject子類中嗎?
0
A
回答
0
我會把它放在一個單獨的類。不是針對不同的線程問題(通過使用NSManagedObjectContext
的performBlock:
方法解決這個問題相對簡單),而是用於分離問題。數據模型應該只存儲數據。它不應該擔心下載它。創建一個下載數據的類,然後將原始數據傳遞給NSManagedObject
子類(方法名爲+objectFromDownloadedData:(NSData *)
),以創建應用程序可以使用的實際數據對象。
0
您可以將網絡代碼置於NSManagedObject
子類中。
這將是壯觀糟糕的設計這樣做,但是。將網絡代碼放在模型類中只是可怕的應用程序體系結構。它可以工作,但它會成爲iOS上最醜陋,最糟糕的代碼之一。
相關問題
- 1. 你可以把一個庫放在命名空間裏面嗎?
- 2. 當你在一個TableLayout的子項中時,你可以拖放一個TextView嗎?
- 3. 我們可以把IBOutlets放在一個類別中嗎?
- 4. 你可以把太多的信息放入一個變量嗎?
- 5. mod_rewrite如果你在整個地方使用表達式,你可以把它放在一個「變量」中嗎?
- 6. 在C#中,你可以把一個Or放在「where」接口約束中嗎?
- 7. 我可以編碼NSManagedObject的子類嗎?
- 8. 你可以使一個類的方法不可繼承嗎?
- 9. 我可以把一個CSS類放入一個對象嗎?
- 10. 你可以把一個jQuery函數的輸出放入一個變量中嗎?
- 11. SQL你可以把一個if語句放在select過程中嗎?
- 12. PHP:你可以把一個DateTime對象放在while循環中嗎?
- 13. 你可以把#includes放在C++頭文件中嗎?
- 14. 你可以把JST模板放在_.template函數中嗎?
- 15. 你可以在一個div中放置一個樣式塊嗎
- 16. 你可以把一個Canvas實例放入一個jQuery畫廊嗎?
- 17. 你可以在C++中隱藏一個虛擬方法嗎?
- 18. 你可以在一個類中擴展兩個類嗎?
- 19. 你可以給pygame中的同一個類中的另一個方法創建一個屬性的方法嗎?
- 20. 你可以在同一個類中有一個textSwitcher和imageSwitcher嗎?
- 21. 我可以把一個UIPageControl放在UITableViewController的表頭中嗎?
- 22. 我應該把主要方法放在超類或Java中的子類中嗎
- 23. 當你聲明對象時,你可以調用一個類的方法嗎?
- 24. add方法以類從NSManagedObject
- 25. 你可以把多個元素放在html <a>標籤中嗎?
- 26. 你可以把一塊帆布放在另一塊帆布內嗎?
- 27. 你可以在Objective-C的早期返回一個方法嗎?
- 28. 可以在viewDidDisappear方法中釋放一個對象嗎?
- 29. 你可以按子類排序嗎?
- 30. pyqt4:我可以重寫一個沒有子類的方法嗎?