2017-08-18 16 views
0

属性値が 'id'、 'brand'、 'category'、 'mrp'のエンティティCalculatorProduct を持っています 「カテゴリ」列/属性コアデータ内のユニークな属性/列値を取得する

let context = DataBaseController.getContext() 
    let fetchRequest:NSFetchRequest<CalculatorProduct> = CalculatorProduct.fetchRequest() 

    fetchRequest.propertiesToFetch = ["category"] 

    fetchRequest.returnsDistinctResults = true 
    do{ 

     let result = try context.fetch(fetchRequest) 


     print("array from db \(String(describing: result.count))") 
     print("array from db \(String(describing: result))") 

     for val in result{ 

      print("\(String(describing: val.category))") 
     } 

    } 
    catch{ 

     print("error in fetching is\(error)") 
    } 
+0

そして、何が機能していませんか? – Larme

+0

オブジェクト全体をフェッチしています – Prathamesh

+0

カラムの値が必要です – Prathamesh

答えて

0

は、以下のことを試してみてください。

let context = DataBaseController.getContext() 
let fetchRequest:NSFetchRequest<CalculatorProduct> = CalculatorProduct.fetchRequest() 
fetchRequest.propertiesToFetch = ["category"] 
fetchRequest.returnsDistinctResults = true 
fetchRequest.resultType = .dictionaryResultType 
do { 
    let result = try context.fetch(fetchRequest) as! [[String:Any]] 

    print("array from db \(String(describing: result.count))") 
    print("array from db \(String(describing: result))") 

    for val in result{ 
     print("\(String(describing: val["category"]))") 
    } 
} 
catch{ 
    print("error in fetching is\(error)") 
} 
+0

これは動作しますか? –

+0

CalculatorProduct以外の結果がCalculatorProductであるため、オブジェクト全体が返されるため、実際には、CalculatorProductオブジェクトを辞書に変換しようとしているため、コードで "fetchRequest.resultType = .dictionaryResultType" 。だから、私は "NSFetchRequest "をNSFetchRequest に変更します。 – Prathamesh

関連する問題