我正在关注核心动画书的教程,我尝试了以下内容。
@interface ViewController ()
@property (nonatomic, weak) IBOutlet UIView * layerView;
@property (nonatomic, weak) CALayer *blueLayer;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.blueLayer = [CALayer layer];
self.blueLayer.frame = CGRectMake(50.0f, 50.0f, 100.0f, 100.0f);
self.blueLayer.backgroundColor = [UIColor blueColor].CGColor;
[self.layerView.layer addSublayer: self.blueLayer];
}
...
@end
根据这本书,上面的代码应该在layerView
顶部中间的屏幕上打印一个蓝色图层。但是,我只能看到layerView
而blueLayer
无处可见。有谁知道发生了什么?我输了。
答案 0 :(得分:2)
你应该在这一行收到警告
self.blueLayer = [CALayer layer];
由于self.bluelayer
是弱指针,因此ARC会在创建对象后立即丢弃该对象。该属性应声明为strong
。