簡體   English   中英

在CoreData iOS中僅獲取表的少數屬性

[英]Getting only few properties of a table in CoreData ios swift3

我將coreData實體定義為

在此處輸入圖片說明

在此處輸入圖片說明

在TTFinds中

@nonobjc public class func fetchRequest() -> NSFetchRequest<TTFinds> {
    return NSFetchRequest<TTFinds>(entityName: "TTFinds");
}

我正在嘗試獲取TTFinds列表

    let request: NSFetchRequest<TTFinds> = TTFinds.fetchRequest()        
    do {
        let result = try appDel.persistentContainer.viewContext.fetch(request)

可以看出,TTFinds獲得了其父TTArea對象。 但是我只想獲得幾列。 假設只說namecreationDate怎么辦?

我努力了

let request: NSFetchRequest<TTFinds> = TTFinds.fetchRequest()
        request.propertiesToFetch = NSArray.init(objects: "name", "creationDate", "image", "latitude", "longitude",
            "area.name") as? [Any];                

但是area.name給出錯誤。

忘記propertiesToFetch並僅獲取整個對象。

首先,如果使用字典的結果類型,則只能檢索選擇性屬性。 它將使您的代碼更加繁瑣和冗長,而效率沒有任何提高。

其次,即使您僅獲取對象,即使對象很多,Core Data也會“在后台”進行各種優化,並獲取所需的內容。 只需訪問所需的屬性即可觸發此操作。

因此,假設您僅獲取某些屬性的目的是節省內存或減少性能瓶頸,請在實際遇到這些瓶頸之前不要擔心。

注意:您的人際關系應該成反比關系!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM