2013-07-28 7 views
0
@interface Account : NSManagedObject 
@property (strong, nonatomic) NSData *encryptedPassword; 

,我沒有使用@dynamic該屬性上NSManagedObject的一個子類使用點符號引起了UnrecoginzedSelectorException

@dynamic encryptedPassword; 

在我沒設置類模型的賬戶

但當我嘗試使用點符號訪問encryptedPassword時引發異常:

account.encryptedPassword 

雖然使用KVC是完全沒問題的:

[account primitiveValueForKey:@"encryptedPassword"] 

請問如何解決這個問題?


對於以下代碼

@try { 
    NSLog(@"Primitive Value: %@", [account primitiveValueForKey:@"encryptedPassword"]); 
    NSLog(@"Value For Key: %@", [account valueForKey:@"encryptedPassword"]); 
    NSLog(@"Dot Notation: %@", account.encryptedPassword); 
} 
@catch (NSException *exception) { 
    NSLog(@"Found: %@", exception.reason); 
} 

原始值:< 0f43f1e0 c4c4e0ab 97c524f4 b8483430>

實測值:[valueForUndefinedKey:]:所述實體的賬戶是不關鍵符合密鑰「encryptedPassword」的值編碼。

+0

什麼是您的數據模型,並執行'valueForKey:'工作。 – Wain

+0

它被定義爲二進制數據,非可選,與普通屬性沒有區別。哦,valueForKey:雖然不起作用。 – Poligun

+1

你手動創建了這個類,而不是讓Xcode去做。自動生成的版本有什麼區別? – Wain

回答

1

如果類正確創建,它應該工作。模型和類之間有一些不匹配。這通常是屬性(屬性)的命名。使用Xcode從模型中重新生成類並進行比較以找出差異。

+0

非常感謝你。實際上,在重新生成.h文件後,我在原始文件中發現了一個錯字。 – Poligun

相關問題