首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

override的简略示例

2012-06-26 
override的简单示例overrideAppDelegate.h#import NSString+Addition.h#import objc/objc-class.h#def

override的简单示例

overrideAppDelegate.h

#import "NSString+Addition.h"#import <objc/objc-class.h>#define CSTRING_CUSTOM_ADDITON "^_^"@implementation NSString (NSString_Addition)- (const char *)ovUTF8String {char *sOriginal = (char *)[self ovUTF8String];int iOrgLen = (NULL == sOriginal ? 0 : strlen(sOriginal));char *sCustom = (char *)malloc(iOrgLen + strlen(CSTRING_CUSTOM_ADDITON) + 1); if (NULL != sCustom) { if (NULL != sOriginal) { strcpy(sCustom, sOriginal); } strcat(sCustom, CSTRING_CUSTOM_ADDITON); }return (const char *)sCustom;}+ (BOOL)swizze { Method oldMethod = class_getInstanceMethod(self, NSSelectorFromString(@"UTF8String")); if (!oldMethod)return NO;Method newMethod = class_getInstanceMethod(self, NSSelectorFromString(@"ovUTF8String"));if (!newMethod)return NO;method_exchangeImplementations(oldMethod, newMethod);return YES;}@end

热点排行