84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式
认证高级PHP讲师
Vous n'êtes pas obligé d'écrire des catégories. Vous pouvez ajuster la méthode suivante pour échanger des méthodes. Pourquoi n'écrivez-vous pas simplement la position ?
void methodSwizzle(Class c, SEL orig, SEL newS ) { Method origMethod = class_getInstanceMethod(c, orig); Method newMethod = class_getInstanceMethod(c, newS); BOOL addSuccess = class_addMethod(c, orig, method_getImplementation(newMethod),method_getTypeEncoding(newMethod) ); if (addSuccess) { class_replaceMethod(c, newS, method_getImplementation(origMethod), method_getTypeEncoding(origMethod)); }else{ method_exchangeImplementations(origMethod, newMethod); } }
Vous n'êtes pas obligé d'écrire des catégories. Vous pouvez ajuster la méthode suivante pour échanger des méthodes. Pourquoi n'écrivez-vous pas simplement la position ?