Свойство IBInspectable не имеет своего значения в initWithCoder: initializer
У меня это в Миклассе.файл 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
1 ответ:
Похоже, вы сами ответили на свой вопрос:
В реальной жизни, конечно, вас, вероятно, не будет волновать это значение, пока мы не доберемся доawakeFromNib
вместоinitWithCoder:
.awakeFromNib
будет позже, и к этому времени атрибуты среды выполнения будут установлены.viewDidLoad
, что значительно позже, чем и то, и другое.