访问变量并使用getter和setter返回always(null)

时间:2013-05-06 14:11:37

标签: objective-c cordova

我的Phonegap iOS应用程序中有一个名为Cargo的本机类,它只包含一个变量lkwid以及getter和setter方法。

货物.h

@interface Cargo : CDVPlugin {
    NSString *lkwid;    
}

//@property (retain, getter=lkwid) NSString *lkwid;

-(NSString*) lkwid;
-(void)setLKW:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
-(void) setlkwid:(NSString *)textValue;

@end

货物.m

#import "Cargo.h"

@implementation Cargo

-(void) setLKW:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options {
    NSString* callbackId = [arguments objectAtIndex:1];
    lkwid = callbackId;
    NSLog(@"LKW übergeben %@ ",lkwid);
}

-(id)init {
    self = [super init];
    if (self != nil) {
        // initialize stuff here
    }

    return self;
}

-(void) setlkwid:(NSString *)textValue
{
    if (textValue != lkwid)
    {
        [textValue retain];
        [lkwid release];
        lkwid = textValue;
    }
}

-(NSString*) lkwid
{
    return lkwid;
}
@end

现在我想从另一个名为MainViewController的类访问变量lkwid。我已经将Cargo.h导入该类并在MainViewController.h中创建了一个对象* car

@interface MainViewController : CDVViewController <CoreLocationControllerDelegate> {
    Cargo *car;
}

    @property (nonatomic, retain) Cargo *car;

在MainViewController.h中,我想从Cargo类访问lkwid但返回always(null)。 例如。即使我将lkwid设置为某个值,该类也会返回null。

[car setlkwid:@"ABC"];
NSLog(@"%@ ",[car lkwid]);

你有什么小费在这里出错吗?

1 个答案:

答案 0 :(得分:1)

你有没有初始化汽车对象。它看起来像你声明它然后没有构造它,所以它为每个值返回nil。