近期總結了一些常用的ios代碼。
1、iOS中不定參數(可變參數)的方法
常見於NSArray初始化方法中,如:
@interface NSArray (NSArrayCreation)+ (id)arrayWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;- (id)initWithObjects:(id)firstObj, ... NS_REQUIRES_NIL_TERMINATION;//...@end
NS_REQUIRES_NIL_TERMINATION 是一個宏,用於編譯時間非nil結尾的檢查。自訂不定參數的方法與C/C++一樣,樣本如下:
- (id)initWithColumns: (NSString*)firstColumnName, ... {if (self = [self init]) {NSMutableArray* arrays = [NSMutableArray array];va_list argList;if (firstColumnName) {[arrays addObject:firstColumnName];va_start(argList, firstColumnName);id arg;while ((arg = va_arg(argList, id))) {[arrays addObject:arg];}}self.columnNames = [NSArray arrayWithArray:arrays];}return self;}
2、iOS中URL編碼
NSString* escapedURLString = [unescapedStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]或NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)yourtext, NULL, (CFStringRef)@”!*’();:@&=+$,/?%#[]“, kCFStringEncodingUTF8);
3、判斷iOS裝置是否是iPad
#define IS_IPAD ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] && [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)