私はCore Dataの新しい手であり、NSPredicateのクエリ文を書く方法を知りませんし、いくつかの問題を抱えています。私の問題とは、私の例aim.For私のクエリを達成するために、いくつかの提案を与え、今私は、テーブルには、それはいくつかのデータを持っています。(映像ショーとして)My databaseコアデータのクエリ文をNSPredicateでコード化する方法がわかりません
月属性を持つテーブル内のデータ「2015/03/01 00:00:00 "今、2015/03で始まる日付を検索したい、" fetchRequest.predicate = NSPredicate(format: "month BEGINSWITH [cd]%@/0%@ (年= 2015、月= 03) "、または" fetchRequest.predicate = NSPredicate(形式: "月LIKE [C]%@/0%@"、年、月) もしそうでなければ、私は本当に誰かが私を助けることを願っています。 D別の質問には、[]で「CD/C」である、それは構造を設定されているものを意味次のようにコードを:??
func remove(model:MonthlySummery) -> Int {
let cxt = self.managedObjectContext!
let entity = NSEntityDescription.entityForName("MonthlySummery", inManagedObjectContext: cxt)
let component = NSCalendar.currentCalendar().components([.Year,.Month], fromDate: model.month!)
let year = component.year
let month = component.month
let fetchRequest = NSFetchRequest()
fetchRequest.entity = entity
NSLog("month == %i/0%i", year,month)
fetchRequest.predicate = NSPredicate(format: "month BEGINSWITH[cd] %@/0%@", year,month)
do{
let listData = try cxt.executeFetchRequest(fetchRequest) as NSArray!
if listData.count > 0 {
let dailyRecord = listData.lastObject as! NSManagedObject
cxt.deleteObject(dailyRecord)
if cxt.hasChanges {
try cxt.save()
}
}
} catch {
NSLog("Remove failure!")
let nserror = error as NSError
NSLog("Error: \(nserror), \(nserror.userInfo)")
}
return 0
}
はムンディ@ありがとう、私はつもりです、今、私はこの問題を解決するための別のアイデアを持って、それを得ますNSDataFormatterで必要なフォーマットを設定できるので、月の属性をNSDateからStringに変更します。たとえば、月の文字列が必要な場合は、dateFormat = "yyyy-mm"を設定できます。 、私はdataFormat = "yyyy-mm-dd"を設定することができます。そう思いますか? – Jixes
私が言ったように、これは潜在的に悲惨な考えです。日付を表すために使用されるNSDateを使用する必要があります。文字列はこの仕事をするのはあまり良くありません。 – Mundi
NSDateを使って日付を表現すると、述語文をコードする方法がわかりません.NSDateのデフォルトの形式は "2015/04/12 00:00:00"です。データはある日に「2015/04/12 00:00:00」に「00:00:00」は必要ありません。月にデータを照会する必要がある場合は、「/ 12 00 「00:00」の「2015/04/12 00:00:00」に「2015/04」が必要ですか?理解していますか?質問文をコード化するように教えてもらえますか?非常に感謝します – Jixes