質問

ここに私のコードは次のとおりです。

for (NSManagedObject *object in array) {
    if ([[object valueForKey:@"DueDate"] isLessThan:[NSDate date]]) {
        count++;
        NSLog(@"Looped");
        NSString *test = [[NSString alloc] initWithFormat:@"%@", [object valueForKey:@"DueDate"]];
        NSLog(@"%@", test);
    }
}
NSLog(@"%i", count);
NSDockTile *aTitle = [[NSApplication sharedApplication] dockTile];
[aTitle setBadgeLabel:[NSString stringWithFormat:@"%i", count]];

がなければならない場合、このコードは、ドックアイコンに8を追加して何らかの理由で2

役に立ちましたか?

解決

何を根拠に、あなたはそれが2であることを主張していますか?あなたは明確に(ところで、あなたはループを通るたびに新しいオブジェクトを作成)期日現在の日付よりも少ない配列内の8つのオブジェクトを持っています。

これらの管理オブジェクトのDueDateプロパティの値のクラスは何ですか?それは彼らがNSDatesじゃないという可能性だし、彼らのclassの方法があることを、代わりに尋ねたときに例外をスローする(メッセージをNSLogcompare:を使用して結果をログに記録します。期日値をこの-送るためのモデルを見てはいけません) NSDate、単に戻ってナンセンスと比較します。

また、なぜあなたは、これらのオブジェクトを取得するために使用しているフェッチ要求で述語としてこれです-より少なくよりX-日付テストが含まれていませんか?そして、あなたは単純に配列のcountを使用することができます(確認した後、期日値はNSDatesです)。それはあなたが、もちろん、あなたが示したコードの外に大きな結果の配列で何かをやっていないと仮定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top