У меня есть подкласс класса NSManagedObject, который используется с базовыми данными в iPhone. Однако у меня есть временное «поле» (ivar), которое я хочу добавить в этот класс (но я не хочу сохранять его в хранилище данных). Пытался использовать неформальный и формальный протокол, но оба они дают мне поведение, подобное «статической переменной». (Он ведет себя как переменная класса, а не как переменная экземпляра). Любое предложение?
Моя первая попытка, создал Test "Dummy-class", который предположительно является подклассом NSManagedObject, затем я создал Test-category
@interface Test (custom)
NSString *_string ;
- (void)setString:(NSString *)newString;
- (NSString *)string;
@end
Это обычные сеттеры и геттеры. Так я использую Test class
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 (который является моей сущностью), но я не думаю, что это способ сделать это.