1. 消息
#import <objc/message.h>
#import <objc/runtime.h>
objc_msgSend((id)[Person class], @selector(walk));
2. 獲取所有方法,變量
objc_property_t * propertys = class_copyPropertyList(clazz, &outCount);
3. 交換方法(AOP)
[外部鏈接](http://note.youdao.com/noteshare?id=2ca674adf2eeece8fdd548e3458ef983)
4. 分類添加成員
const char key;
//使用runtime的方法,將分類中的,屬性set與get方法進(jìn)行重寫,解決分類中不能夠聲明成員變量的這個(gè)問(wèn)題
- (void)setExpand:(BOOL)expand
{
//<#id object#> 傳進(jìn)來(lái)的參數(shù)與誰(shuí)關(guān)聯(lián)
//const void *key 唯一標(biāo)示
//id value 關(guān)聯(lián)的內(nèi)容是什么
//objc_AssociationPolicy policy 以哪種約束方式進(jìn)行關(guān)聯(lián)
objc_setAssociatedObject(self, &key, @(expand), OBJC_ASSOCIATION_ASSIGN);
}
- (BOOL)expand
{
//把包裝類轉(zhuǎn)換成基本數(shù)據(jù)類型后,在返回
return [objc_getAssociatedObject(self, &key) boolValue];
}
- (void)spliteView
{
if((self.expand = !self.expand))
{
self.view.transform = CGAffineTransformMakeTranslation(300, 0);
}
else
{
self.view.transform = CGAffineTransformIdentity;
}
}
5. kvc的實(shí)現(xiàn)
6. 歸檔的實(shí)現(xiàn)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。