Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 关于在目标C中创建私有setter的警告_Objective C_Ios - Fatal编程技术网

Objective c 关于在目标C中创建私有setter的警告

Objective c 关于在目标C中创建私有setter的警告,objective-c,ios,Objective C,Ios,我在类的接口文件Account.h中声明了两个属性 @interface Account : NSObject { NSString* username; NSString* password; } @property (readonly) NSString* username; @property (readonly) NSString* password; @end 我在其实现文件Account.m中创建了私有setter @interface Account()

我在类的接口文件Account.h中声明了两个属性

@interface Account : NSObject {
    NSString* username;
    NSString* password;
}

@property (readonly) NSString* username;
@property (readonly) NSString* password;

@end 
我在其实现文件Account.m中创建了私有setter

@interface Account()

@property (copy, readwrite) NSString* username;
@property (copy, readwrite) NSString* password;

@end
但是,在实现文件的上面两行中,我从XCode(v3.x)得到了警告。这就是警告

warning: property 'username' attribute in 'Account' class continuation does not match class 'Account' property

为什么XCode会发出此警告。这些警告遍布我的项目。我遗漏了什么吗?

您还必须在.h文件中包含
copy
说明符:

@property (copy, readonly) NSString* username;
@property (copy, readonly) NSString* password;

您还必须在.h文件中包含
copy
说明符:

@property (copy, readonly) NSString* username;
@property (copy, readonly) NSString* password;

但是根据接口文件,setter不存在。对吗?所以,把“副本”放在那里有点奇怪。是的,看起来很奇怪。但是如果省略
copy
,默认值为
assign
,并且以后不能使用
copy
retain
覆盖现有的
assign
声明。谢谢。成功了。但是我不明白为什么objectiveC应该给出一个默认的写入策略(assign),当我只是为读者请求时。但是根据接口文件,setter不存在。对吗?所以,把“副本”放在那里有点奇怪。是的,看起来很奇怪。但是如果省略
copy
,默认值为
assign
,并且以后不能使用
copy
retain
覆盖现有的
assign
声明。谢谢。成功了。但我不明白为什么objectiveC应该给出一个默认的写作策略(assign),当我只是为读者提问时。