学习switf 对象关联 objc_setAssociated
2017-11-02 本文已影响3人
Faith_K
swif版本
import UIKit
extension UIView {
private struct assKey {
static let keyName = "keyName"
}
var name : String!{
get {
return objc_getAssociatedObject(self, assKey.keyName) as? String
}
set (name){
if let name = name {
objc_setAssociatedObject(self, assKey.keyName, name, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY_NONATOMIC)
}
}
}
}
OC版本
.h
#import <UIKit/UIKit.h>
@interface UIView (AddView)
@property (copy, nonatomic) NSString *name;
@end
.m
#import "UIView+AddView.h"
#import <objc/runtime.h>
@implementation UIView (AddView)
static char assKey;
- (void)setName:(NSString *)name{
//关联对象
objc_setAssociatedObject(self, &assKey, name, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (NSString *)name{
//获取
return objc_getAssociatedObject(self, &assKey);
}