设置初始化程序中超类中定义的属性

时间:2018-01-16 15:19:13

标签: ios objective-c initializer

据我所知,var country = document.getElementById('edit_country').value; for (i = 0; i < country_arr.length; i++) { if(country_arr[i] == country) { var city = "|".concat(document.getElementById("add_city").value); city_arr[i] = city_arr[i].concat(city); } } 中的一般经验法则设定值是直接使用ivars的问题。

例如

init

然后:

@interface CustomClass

@property (nonatomic, strong) NSString *name;

@end

现在到目前为止一切顺利。我对一个略有不同的案例感兴趣。假设您正在为UIView创建子类,并且在初始化器中,您希望为该子类指定背景颜色。这里,属性- (instancetype)initWithName:(NSString *)name { if (self = [super init]) { _name = name; } return self; } 在父类中定义。我的问题是:在初始化程序中使用backgroundColor是不好的风格还是可能有问题?将背景颜色设置在其他地方会更好吗?

self

1 个答案:

答案 0 :(得分:3)

我相信你在那里做的很完美。此时,在调用super.init后,self存在,您可以使用它(您也在调用return self,那么为什么其他对self的引用会出错? ?)。