ä¸ãå
³äºObjective-Cç§ææ¹æ³ï¼
ä¸é¢æ¯ç½ä¸ä¸å主çé¨åå
容ï¼
å¨é¢å对象çå¼åä¸ï¼ä¸ä¸ªå¾éè¦çååå°±æ¯ä¸è¦æ´é²ä¸éè¦æ´é²çä¸è¥¿ã å¨Objective-Cä¸ï¼å¨å¤´æ件ä¸ä½ åªè½å£°æç±»æ¹æ³åå®ä¾æ¹æ³ï¼è¿æå³çä½ ææçæ¹æ³é½è¦æ´é²å¨å¤è¾¹ã
å
¶å®å¨Objective-Cä¸ä¹å¯ä»¥æ¥å£°æä¸ä¸ªç§ææ¹æ³ï¼è¿ä¸ªæ¹æ³åªææ¬ç±»å¯è§ï¼å
¶ä»ä»»ä½ç±»é½çä¸å°ï¼å³ä½¿æ¯ç»§æ¿äºè¿ä¸ªç±»çå
¶ä»åç±»ä¹æ æ³çå°ã æ¹æ³ä¹æ¯è¾ç®åã
@interface Controller : NSObject
{
NSString *something;
}
(void)thisIsAStaticMethod;
- (void)thisIsAnInstanceMethod;
@end
@interface Controller (Private)
- (void)thisIsAPrivateMethod;
@end
åªè¦å¨å¤´æ件æè
å®ç°ç±»éé¢æ·»å ä¸ä¸ªinterfaceï¼è¿ä¸ªInterfaceçååè·å¤´æ件éé¢çä¸æ ·ï¼åªæ¯åé¢å ä¸äºï¼Privateï¼ãç°å¨å¨è¿ä¸ªinterfaceä¸å£°æçæ¹æ³å°±æ¯ç§ææ¹æ³äºã
æ¤åæ¯å¨ä¸å客ä¸çå°çï¼ä½æ¯åç°è¿ä¸ªæ´åæ¯Objective-Cä¸çç±»ç®(Category):
äºãç±»ç®ï¼Categoryï¼:
ç±»ç®æ¯Objective-Cä¸ææç¨çä¸ä¸ªç¹æ§ãå®è´¨ä¸ï¼ç±»ç®å
è®¸ä½ ä¸ºä¸ä¸ªå·²åå¨ç类添å ä¸äºæ¹æ³èä¸ç¨åç±»å该类ï¼ä¹ä¸éè¦ä½ äºè§£è¯¥ç±»çå®ç°ç»èã
è¿æ¯ç¹å«æç¨çï¼å ä¸ºä½ å¯ä»¥ç»ä¸ä¸ªå
建ç对象添å æ¹æ³ãå½ä½ æ³å¨ä½ çåºç¨ç¨åºéé¢ç»ææNSStringç±»åçå®ä¾æ·»å ä¸ä¸ªæ¹æ³ï¼ä½ åªéè¦æ·»å ä¸ä¸ªç±»ç®ï¼èä¸éè¦éè¿å®ä¹ä¸ä¸ªåç±»æ¥æ·»å 该æ¹æ³ã
æ¯å¦ï¼ææ³ç»NSStringæ·»å ä¸ä¸ªæ¹æ³ä»¥å¤æå®æ¯ä¸æ¯ä¸ä¸ªURLï¼åæ³å°±åè¿æ ·ï¼
#import <Cocoa/Cocoa.h>
@interface NSString (Utilities)
- (BOOL) isURL;
@end
è¿å¾åä¸ä¸ªç±»ç声æãä¸åçå°æ¹å¨äºåé¢æ²¡æååºç¶ç±»ï¼å¹¶ä¸å¨æ¬å·éé¢åäºç±»ç®çå称ãç±»ç®çååå¯ä»¥é便åï¼ä½æ¯æ好è½è¡¨è¾¾åºä½ å¨ç±»ç®ä¸å
å«çæ¹æ³æè¦åçäºã
ä¸é¢æ¯ä¸ä¸ªå®ç°ãåè®°ï¼è¿ä¸æ¯å¾å¥½çæ£æ¥URLçæ¹æ³ãæ们åªæ¯ä¸ºäºè¯´æ¸
æ¥ç±»ç®çæ¦å¿µã
#import "NSString-Utilities.h"
@implementation NSString (Utilities)
- (BOOL) isURL
{
if ( [self hasPrefix:@"http://"] )
return YES;
else
return NO;
}
@end
ç°å¨ï¼ä½ å¯ä»¥ä½¿ç¨NSStringçè¿ä¸ªæ¹æ³äºï¼ä¸é¢ç代ç ä¼å¨æ§å¶å°æå°âstring1 is a URLâï¼
NSString* string1 = @"
http://pixar.com/";
NSString* string2 = @"Pixar";
if ( [string1 isURL] )
NSLog (@"string1 is a URL");
if ( [string2 isURL] )
NSLog (@"string2 is a URL");
ä¸åç±»ä¸åï¼ä½ ä¸è½éè¿ç±»ç®æ¥æ·»å å®ä¾åéãä½æ¯ä½ è½éè¿ç±»ç®éåï¼overrideï¼ç±»ä¸å·²ç»åå¨çæ¹æ³ï¼å½ç¶ï¼éåçæ¶åè¦ç¹å«å°å¿ã
è®°ä½ï¼å½ä½ éè¿ç±»ç®æ´æ¹ä¸ä¸ªç±»çæ¶åï¼è¿ä¸ªæ´æ¹ä¼å½±åä½ è¿ä¸ªåºç¨ç¨åºä¸ææè¿ä¸ªç±»çå®ä¾ã
ä¸ãçé®ï¼
读äºä¸é¢ä¸åäºï¼åç°ä¸ä¸æè°çâObjective-C ç§ææ¹æ³âï¼æ¤å¤çç§æåC çç§æåä¼¼æ¤ç§æéå½¼ç§æå¢ï¼
1. C ä¸çç§ææ°æ®æåãç§ææåå½æ°å¯¹å¤é½æ¯ä¸å¯è§çï¼å³æ¯ä¸å¯ä»¥éè¿è¯¥ç±»ç对象ææ¯è¯¥ç±»ç对象æéè¿è¡ç§ææ°æ®æåãç§ææåå½æ°è¿è¡ç´æ¥è®¿é®çï¼
2. æ¢ç¶ä¸ä¸è¯´éè¿æè°çObjective-Cä¸çç±»ç®ï¼Categoryï¼å³å¯å®ç°Objective-Cä¸çæè°ç§ææ¹æ³ï¼é£ä¹è¯¥ç§ææ¹æ³åºè¯¥æ¯ä¸å¯ä»¥éè¿è¯¥ç±»ç对象å®ä¾ææéè¿è¡è°ç¨çï¼èäºä¸æif ( [string1 isURL] )ï¼å¯è§æ¤å¤ç§æéå½¼å¤çç§æï¼ï¼ï¼æ±è§£çï¼ï¼ï¼^_^
èä¸ï¼ä¸ä¸ç@interface Controller (Private)ï¼æ¤å¤çPrivateå¯ä»¥æ¯ä»»æçå§ï¼åªè¦å®ç°ä¸é¢äºè
ä¸è´å³å¯ã
@interface Controller (xxx)
@implementationController (xxx)