iPhoneのCoreDataで使用されるNSManagedObjectクラスのサブクラスがあります。ただし、そのクラスに追加したい一時的な「フィールド」(ivar)があります(ただし、データストアに保持したくありません)。非公式および公式のプロトコルを使用しようとしましたが、どちらも動作のような「静的変数」を提供します。(インスタンス変数ではなくクラス変数のように動作します)。なにか提案を?
私の最初の試みは、おそらくNSManagedObjectのサブクラスであるTest "Dummy-class"を作成し、次にTest-categoryを作成しました。
@interface Test (custom)
NSString *_string ;
- (void)setString:(NSString *)newString;
- (NSString *)string;
@end
それらは通常のセッターとゲッターです。これが私がTestクラスを使用する方法です
Test *a = [[Test alloc] init];
Test *b = [[Test alloc] init];
[a setString:@"Test1"];
NSLog(@"%@", [a string]); //This will print out Test1
[b setString:@"Test2"];
NSLog(@"%@", [b string]); //This will print out Test2
NSLog(@"%@", [a string]); //Unfortunately, this will also print out Test2
NSManagedObjectサブクラス(私のエンティティ)を直接操作することもできますが、それがその方法だとは思いません。