我正在重新打开一个售卖的objective-c类,但我正在努力以一种干净的方式来访问_username合成的实例变量,以便不会导致无限递归。这似乎应该非常简单,但尚未找到可行的解决方案。
User.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface User : NSManagedObject
@property (nonatomic, retain) NSString * username;
@end
user.rb
# reopens User < NSManagedObjectContext
class User
def username
# how do i access _username instance var of User.h ??
end
end
答案 0 :(得分:0)
我最初尝试过alias_method :original_username, :username
,但因为它们被声明为@dynamic并在运行时生成,所以rubymotion将获得用户名未定义的崩溃。阅读Managed Object Accessor Methods后,我找到了另一种解决方案。
- (NSString *)name
{
[self willAccessValueForKey:@"name"];
NSString *myName = [self primitiveName];
[self didAccessValueForKey:@"name"];
return myName;
}