2014-02-24 37 views
1

我重新打开了一个有售价的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

您是否尝试过使用'@ _username'? – vacawama

+0

@vacawama是啊,不工作,不一样的“命名空间” –

回答

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; 
} 
相关问题