0

Есть ли способ проверить, было ли задано свойство NSManagedObject, например, значение NSNumber с плавающей точкой, которое имеет значение по умолчанию = 0?Проверка основных данных, если свойство никогда не было установлено

Я пытался что-то вроде этого:

-(void)setQuantity:(NSNumber *)quantity { 

if (self.quantity==nil) 
    NSLog(@"Property never been set"); 
else 
    NSLog(@"Property already set"); 

[self willChangeValueForKey:@"quantity"];  
[self setPrimitiveQuantity: quantity];  
[self didChangeValueForKey:@"quantita"]; 

} 

Но «количество» никогда не ноль, потому что инициализируется значением по умолчанию. Благодаря!

ответ

1

Если у атрибута есть значение по умолчанию, во время инициализации установлено .. У вас есть 2 варианта:

  1. Отметьте атрибут как необязательный и не укажите значение по умолчанию. Вы можете проверить нуль.
  2. Убедитесь, что значение по умолчанию уникально и проверяет его, чтобы определить, было ли оно изменено с момента инициализации. Например, для положительных положительных чисел используйте -1.

Предостережение для 1: удостоверьтесь, что нигде в вашем коде атрибут не установлен на nil.
Предостережение для 2: убедитесь, что нигде в вашем коде атрибут не установлен на уникальное значение.