1
ashamp 2015-07-22 00:12:14 +08:00
关注.....
|
2
a412739861 2015-07-23 01:25:35 +08:00 1
只是消除警告的话,改B的属性名称就呗。
@property(nonatomic, weak) id<BProtocol> delegate1; ———————————————————————————————————————————— http://stackoverflow.com/questions/9765033/how-to-properly-subclass-a-delegate-property-in-objective-c/14632135#14632135 第一种模仿至UIKit的写法,应该是这个样子吧 ———————————————————————————————————————————— @class UITableView; @protocol UITableViewDelegate<NSObject, UIScrollViewDelegate> // protocol~ @interface UITableView : UIScrollView <NSCoding> @property (nonatomic, assign) id <UITableViewDelegate> delegate; 所以应该上面的是漏写了吧,毕竟里面的东西有点乱糟糟的排布。>_< 不过他的两种方法,我都没成功。可能还漏了什么。 ———————————————————————————————————————————— 但是第二种方法加的时候,警告不一样。 //ClassB.h @property(nonatomic, weak) id<AProtocol,BProtocol> delegate; 脑洞添加: //ClassB.m @dynamic delegate; 警告消失了…… 所以是不是可能苹果隐藏了那部分能够消除警告的实现呢…… —————— 睡前看了这题,第一时间想的就是开头的原因,能解决警告,而且不仅仅是警告。不过这样不能达到override property,用起来的确很不舒服。 Google关键词override property后想了点的成功。 ———————— 距离我看到这个题目有一小时了,真是折腾自己。Google选手……hope helpful >_<睡去了。 |
3
georgetso OP @a412739861 @dynamic is just what I need
|