0

以下のようなフィールドを持つDBがあります

緯度経度フラグ 54.1425 98.2564 0 52.1036 94.1458 3 51.1569 92.1458 3 50.1326 91.1458 3 56.1236 93.1458 0

フラグが 3 のレコードを取得する必要があります。

    let fetchRequest = NSFetchRequest()

    let appDelegate =
    UIApplication.sharedApplication().delegate as! AppDelegate
    let managedContext = appDelegate.managedObjectContext

    let entityDescription = NSEntityDescription.entityForName("TABLE_LOCATION", inManagedObjectContext: managedContext)




    // Configure Fetch Request
    fetchRequest.entity = entityDescription


    do {
        let result = try managedContext.executeFetchRequest(fetchRequest)
        //print(result)


    } catch {
        let fetchError = error as NSError
        print(fetchError)
    }

私が持っているのは、テーブル TABLE_LOCATION からすべてのレコードを取得する上記のコードだけです。コードまたは実際の例は大歓迎です

ありがとう!

4

3 に答える 3

4

NSPredicate を fetchRequest に追加する必要があります。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/

fetchRequest.predicate = NSPredicate(format: "flag == %@", "3")
于 2016-03-28T12:55:11.783 に答える
0

関数を次のように変更します。

func fetchDistinctDataUsingReq(predicate :NSPredicate) -> NSArray {
   let fetchRequest = NSFetchRequest()
   fetchRequest.predicate = predicate
   //Rest of your code
}

次を使用してこの関数を呼び出します。

let predicate = NSPredicate(format: "flag == %@", 3)
self.fetchDistinctDataUsingReq(predicate)

これははるかに優れたアプローチであり、フェッチ全体で再利用できます。さらに、CoreData テーブルを述語とともにパラメーターとして渡して、それを一般化することができます。

于 2016-03-28T13:16:44.583 に答える
0

NSPredicate を使用して、fetchRequest に設定できます。NSPredicate を作成し、fetch リクエストを実行する前に fetchRequest に設定します。

fetchRequest.predicate = NSPredicate(format: "flag = 3")
于 2016-03-28T12:55:28.467 に答える