إضافة رقم إلى أيقونة قفص الاتهام
-
19-09-2019 - |
سؤال
هنا هو رمزي:
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؟ من الواضح أن لديك ثمانية كائنات في الصفيف الذي يكون تاريخ استحقاقه أقل من التاريخ الحالي (الذي تقوم بإنشاء كائن جديد في كل مرة من خلال الحلقة، راجع للشغل).
ما هي فئة قيم هذه الكائنات المدارة DueDate
منشأه؟ (لا تنظر إلى النموذج الخاص بك لهذا - إرسال قيم تاريخ الاستحقاق class
الرسائل وتسجيل النتائج باستخدام NSLog
.) من الممكن أنهم ليسوا nsdates، وأنهم compare:
الطريقة هي، بدلا من إلقاء استثناء عندما يطلب منك المقارنة مع NSDate، ببساطة إرجاع هراء.
علاوة على ذلك، لماذا لا تتضمن هذا اختبار أقل من X-X-Date كمسند في طلب الجلب الذي تستخدمه للحصول على هذه الكائنات؟ ثم (بعد التأكد من أن قيم تاريخ الاستحقاق هي NSDates) يمكنك ببساطة استخدام count
من الصفيف. هذا يفترض أنك لا تفعل شيئا آخر مع مجموعة نتيجة أكبر خارج الرمز الذي أظهرته، بالطبع.