类别(Category)

刚刚发现个好东西:类别,它可以让你给自己的类中添加新的方法,即使是iOS SDK中的类,其实现和类近乎相同,只不过要有一个特定的类别标示符,即类别名。

举个例子(网上摘来的):(关于UIWebView访问web网页时web网页里的“alert”调用UIAlertView弹框修改Title)

 1 @interface UIWebView (JavaScriptAlert)  
 2   
 3 - (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;  
 4   
 5 @end  
 6   
 7 @implementation UIWebView (JavaScriptAlert)  
 8   
 9 - (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {  
10       
11       
12     UIAlertView* customAlert = [[UIAlertView alloc] initWithTitle:@"我是JS Alert"  
13                                                           message:message  
14                                                          delegate:nil  
15                                                 cancelButtonTitle:@"确定"  
16                                                 otherButtonTitles:nil];  
17       
18     [customAlert show];  
19     [customAlert release];  
20       
21 }  
22 @end  

 

  但存在一个疑问:类别添加的方法和类声明时内部声明的方法有什么区别。:应该是没什么区别的

posted on 2013-04-09 16:02  kelisi_king  阅读(284)  评论(0)    收藏  举报