【发布时间】:2010-01-25 20:48:11
【问题描述】:
从 2.0 天开始,我有几个 UITableViewCell 子类覆盖了已弃用的指定初始化程序:
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier
这段代码为单元格做了一些额外的设置,我正在转换类以使用新的指定初始化器:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
奇怪的是,只有当编译器调用时,编译器才会在子类本身中抛出有关被弃用的方法的警告
[super initWithStyle:style reuseIdentifier:reuseIdentifier]
使用这些子类的所有类都不会收到警告。为了尝试强制它,我在子类的标题中添加了以下内容:
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier __attribute__ ((deprecated));
奇怪的是,现在所有弃用警告都消失了。
我没有尝试过的一件事是转换子类以覆盖新的指定初始化程序,并查看代码中使用这些单元格的位置现在是否收到来自超类的弃用警告。
我仍然觉得奇怪的是,在我添加了不推荐使用的属性后,所有警告都消失了。
有什么想法吗?
【问题讨论】:
标签: objective-c