我在MyClass.h文件中有这个:
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface MyClass : UIView
@end
这是.m文件中的代码:
-(void)awakeFromNib{
[super awakeFromNib];
NSLog(@"This works %lud",(unsigned long)self.max);
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if ((self = [super initWithCoder:aDecoder])){
NSLog(@"This doesn't work %lud",(unsigned long)self.max);
}
return self;
}
在awakeFromNib方法中,我在IB中获得了正确的值集。在initWithCoder中:我将此值等于零。
检查IB中为此属性设置的值的适当时间是什么?
这就是我在.m文件中定义属性的方法:
@interface MyClass()
@property (nonatomic) IBInspectable NSUInteger max;
@end
答案 0 :(得分:7)
您似乎回答了自己的问题:awakeFromNib
而不是initWithCoder:
。 awakeFromNib
稍后,到那时,已经设置了运行时属性。
在现实生活中,当然,在我们到达viewDidLoad
之前,您可能不会关心这个值,这比两者都晚。