999yzc亚洲城在线娱乐城关于set方法的问题

( 999yzc亚洲城在线娱乐城 )

我在一个自定义的NSObject类里面添加了一个属性,叫做token,
然后,我想在.m文件夹里面重写他的set方法和get方法:

 - voidsetToken:NSString *token
{
    _token = token;
    [[NSUserDefaults standardUserDefaults] setObject:token forKey:@"token"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}
- NSString *token
{
    return [[NSUserDefaults standardUserDefaults] objectForKey:@"token"];
}

但是每次我只要两个方法都写上了,上面那行:_token = token;就会报错,如图:


但是如果只写set方法,不写get方法了它又不会报错。
请大神帮我分析下到底是咋回事??如何解决。

=======================
.h界面有写属性。

@synthesize _token = token;

当你复写了get和set方法之后@property默认生成的@synthesize就不会起作用了,这也就意味着你的类不会自动生成出来实例变量了。你如果要复写set、get方法你就必须要自己声明实例变量。一楼手动写上@synthesize也是一种比较暴力的方法。

@interface testClass : NSObject
{
    NSString *_token;
}

@property nonatomic NSString *token;

@end

是否声明了token?

看报错信息貌似没有找到属性

interface中有加入声明吗?

@propertynonatomic,strong NSString *token;  //这句话存在不?

@propertystrong, nonatomic NSString *token
strong 不用 copy 试一下

@Hancock_Xu 正解!

@Hancock_Xu @property默认生成的@synthesize就不会起作用了,这也就意味着你的类不会自动生成出来实例变量了。。。这句没看明白,能解释一下吗

(看完/读完)这篇文章有何感想! 999yzc亚洲城在线娱乐城的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注