如何实现“swift的didset”在objective-c? [英] How to implement the "didset of swift" in objective-c?

查看:1552
本文介绍了如何实现“swift的didset”在objective-c?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Swift(摘自由 http://www.raywenderlich.com发布的书iOS教程中的动画:第12章) / ):

  let photoLayer = CALayer()

@IBInspectable
var image:UIImage! {
didSet {
photoLayer.contents = image.CGImage
}
}

如何在objective-c中实现上述语法?
我知道只设置photoLayer和图像的属性如下:

  @property(strong,nonatomic)CALayer * photoLayer; 
@property(strong,nonatomic)IBInspectable UIImage * image;但是我不知道如何实现 didset {...} / code> parts使用objective-c语法,请帮助!

解决方案

重写setter并自己实现setter。

   - (void)setImage:(UIImage *)image {
_image = image;
photoLayer.contents = image.CGImage
}


Swift (from the book 《iOS Animations by Tutorials:Chapter 12》 released by http://www.raywenderlich.com/):

let photoLayer = CALayer()

@IBInspectable
  var image: UIImage! {
    didSet {
      photoLayer.contents = image.CGImage
    }
}

How can I implement the above syntax in objective-c? I know only to set the property of photoLayer and image like below:

@property (strong, nonatomic) CALayer *photoLayer;
@property (strong, nonatomic) IBInspectable UIImage *image;

But i do not know how to implement didset{...} parts using objective-c syntax, please help!

解决方案

override the setter and implement the setter yourself.

- (void)setImage:(UIImage*)image {
    _image = image;
    photoLayer.contents = image.CGImage
}

这篇关于如何实现“swift的didset”在objective-c?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆