国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

iOS 運行時添加!屬性和方法

2019-11-02 14:47:07
字體:
來源:轉載
供稿:網友

 

第一種:runtime.h里的方法BOOL class_addProperty(Class cls,    const char *name,    const objc_property_attribute_t *attributes,    unsigned int attributeCount)

#include <objc/runtime.h>#import <Foundation/Foundation.h>@interface SomeClass : NSObject {    NSString *_privateName;}@[email protected] SomeClass- (id)init {    self = [super init];    if (self) _privateName = @"Steve";    return self;}@endNSString *nameGetter(id self, SEL _cmd) {    Ivar ivar = class_getInstanceVariable([SomeClass class], "_privateName");    return object_getIvar(self, ivar);}void nameSetter(id self, SEL _cmd, NSString *newName) {    Ivar ivar = class_getInstanceVariable([SomeClass class], "_privateName");    id oldName = object_getIvar(self, ivar);    if (oldName != newName) object_setIvar(self, ivar, [newName copy]);}int main(void) {    @autoreleasepool {        objc_property_attribute_t type = { "T", "@/"NSString/"" };        objc_property_attribute_t ownership = { "C", "" }; // C = copy        objc_property_attribute_t backingivar  = { "V", "_privateName" };        objc_property_attribute_t attrs[] = { type, ownership, backingivar };        class_addProperty([SomeClass class], "name", attrs, 3);        class_addMethod([SomeClass class], @selector(name), (IMP)nameGetter, "@@:");        class_addMethod([SomeClass class], @selector(setName:), (IMP)nameSetter, "[email protected]:@");        id o = [SomeClass new];        NSLog(@"%@", [o name]);        [o setName:@"Jobs"];        NSLog(@"%@", [o name]);    }}輸出:SteveJobs第二種:- (id)valueForUndefinedKey:(NSString *)key第三種:static char c
探索宇宙[www.9-39.com/html/explore/]
onst * const ObjectTagKey;@implementation NSObject (ExampleCategoryWithProperty)@dynamic objectTag;- (id)objectTag { return objc_getAssociatedObject(self, ObjectTagKey);}- (void)setObjectTag:(id)newObjectTag { objc_setAssociatedObject(self, ObjectTagKey, newObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临漳县| 凌海市| 丰城市| 县级市| 喜德县| 舟曲县| 绥德县| 澜沧| 巴马| 江口县| 沐川县| 玉林市| 青州市| 青浦区| 准格尔旗| 南城县| 贡山| 德清县| 托里县| 嘉鱼县| 安庆市| 图们市| 增城市| 伊宁县| 本溪市| 兴隆县| 宁安市| 都昌县| 宜黄县| 馆陶县| 同江市| 云林县| 旬阳县| 镇江市| 朔州市| 景德镇市| 惠来县| 尉犁县| 镇沅| 双鸭山市| 邯郸县|