001-weak和assign的区别

2017-02-27  本文已影响29人  紫荆秋雪_文

1、测试场景:点击屏幕的时候给屏幕添加一个红色的view

2、测试weak

#import "ViewController.h"

@interface ViewController ()
/** 控件使用weak */
@property (nonatomic,weak) UIView *redView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIView *redView = [[UIView alloc] init];
    redView.backgroundColor = [UIColor redColor];
    [self.view addSubview:redView];
    _redView = redView;
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //设置frame
    _redView.frame = CGRectMake(100, 100, 100, 100);
}

@end
#import "ViewController.h"

@interface ViewController ()
/** 控件使用weak */
@property (nonatomic,weak) UIView *redView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIView *redView = [[UIView alloc] init];
    redView.backgroundColor = [UIColor redColor];
    //[self.view addSubview:redView];
    _redView = redView;
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //设置frame
    _redView.frame = CGRectMake(100, 100, 100, 100);
}

@end

3、测试assgin

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic,assign) UIView *redView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIView *redView = [[UIView alloc] init];
    redView.backgroundColor = [UIColor redColor];
    //[self.view addSubview:redView];
    _redView = redView;
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //设置frame
    _redView.frame = CGRectMake(100, 100, 100, 100);
}

@end

上一篇 下一篇

猜你喜欢

热点阅读