2014-10-28 64 views
0

有沒有辦法檢查NSManagedObject屬性(例如默認值爲0的float NSNumber)是否已經在setter中設置?核心數據檢查是否從未設置屬性

我想是這樣的:

-(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:確保你的代碼中沒有任何屬性被設置爲唯一值。

相關問題