ios category问题
巴扎黑
巴扎黑 2017-04-17 17:48:59
0
3
320

学习ios category的时候文章上说category无法向已有类添加实例变量
但是作者给出的例子让我有点懵圈了


求解释那个name是怎么回事

巴扎黑
巴扎黑

membalas semua(3)
左手右手慢动作

Ini ialah atribut, bukan pembolehubah.
Tambahkan atribut pada kelas dan pembolehubah yang sepadan akan dijana secara automatik.
Apabila menambahkan atribut dalam kategori , pembolehubah tika yang sepadan tidak akan dijana.
Oleh kerana kaedah boleh ditambah pada kategori, anda boleh menganggapnya sebagai:
@property(nonatomic, copy) NSString *name; Malah, kaedah set dan dapatkan ditambahkan

Ty80

objc ialah bahasa dinamik, kita boleh menambah sifat pada kelas sedia ada pada masa jalan.

void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)

id objc_getAssociatedObject(id object, const void *key)

Contohnya dalam SVPullToRefresh:

@property (nonatomic, strong, readonly) SVPullToRefreshView *pullToRefreshView;

- (void)setPullToRefreshView:(SVPullToRefreshView *)pullToRefreshView {
    //[self willChangeValueForKey:@"SVPullToRefreshView"];
    objc_setAssociatedObject(self, &UIScrollViewPullToRefreshView,
                             pullToRefreshView,
                             OBJC_ASSOCIATION_ASSIGN);
    //[self didChangeValueForKey:@"SVPullToRefreshView"];
}

- (SVPullToRefreshView *)pullToRefreshView {
    return objc_getAssociatedObject(self, &UIScrollViewPullToRefreshView);
}
阿神

Menambah atribut sebenarnya mengisytiharkan kaedah set dan dapatkan, tetapi kaedah set dan dapatkan khusus mesti dilaksanakan oleh anda sendiri.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan