Objective-C 语法
吧Category使用場景:
-類包含了很多個方法的實現,而這些方法需要不同的團隊成員來實現。
-當你在使用基礎類庫中的類時,不想集成這些類,只想添加一些方法時。
-Category能訪問原始類的實例變量,但是不能添加實例變量,如果想添加實例變量,那么就要通過創建繼承子類來實現。
-Category實現文件中的實例方法,只要你不去調用它,它就不需要實現所有聲明中的所有方法。
block :
代碼塊存儲的數據是一個函數體 ,"^"脫字符,是代碼塊的語法標記,
代碼塊中使用局部變量,必須要在局部變量中添加關鍵字_block;
KVO:基于鍵值的觀察者,主要用于視圖交互方面,比如界面的某些數據發生變化了,界面也要跟著變化,KVO實現兩個對象的直接同步(model,view)。只有通過鍵值編碼改變的值(KVO),才會調用觀察者注冊的方法。
NSDictionary:不可變的詞典
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用鍵值對直接創建詞典對象,結尾必需使用nil標志結束。
example: NSMutableDictionary?*dictionary?=?[NSMutableDictionary?dictionaryWithObjectsAndKeys:@"",@"",nil];?
[dictionary count]: 得到詞典的鍵值對數量。
[dictionary keyEnumerator]: 將詞典的所有key儲存在NSEnumerator中.
example:
NSEnumerator?*enumeratorKey?=?[dictionary?keyEnumerator];
for?(NSObject?*object?in?enumeratorObject)?{ ?
NSLog(@"value:%@",?object); ?
}
[dictionary objectEnumerator]: 將詞典的所有value儲存在NSEnumerator中
[dictionary objectForKey:key]: 通過傳入key對象可以拿到當前key對應儲存的值
NSMutableDictionary:可變詞典。
NSMutableDictionary 是NSDictionay的子類,所以繼承了NSDictionay的方法。
[dictionary setObject: forKey:] :向可變的詞典動態的添加數據 。
[dictionary removeAllObjects..] : 刪除掉詞典中的所有數據。
[dictionary removeObjectForKey..] :刪除掉詞典中指定key的數據。
NSArray:不可變的數組
[array count] : 數組的長度
[array objectAtIndex 0]: 傳入數組腳標的id 得到數據對象。
NSArray?*array?=?[NSArray?arrayWithObjects:@"",@"",nil]; 創建數組對象并初始化賦值。
NSMutaleArray:可變的對象數組
[NSMutableArray arrayWithCapacity:3] :初始化可變數組對象的長度。
[array addObject:] : 向可變數組尾部添加數據對象。
[array addObjectsFromArray:] :向可變數組尾部添加一個數組對象。
?[muArray?insertObject:@""?atIndex:]; 向可變數組的指定位置添加對象。
? ?for?(NSObject?*?object?in?muArray)?{?
? ?NSLog(@"數組對象:%@",?object);?
}
NSRange range = NSMakeRange(0,6); 設置一個范圍為 0 到 6 之間。
[array removeObject:obj inRange:range] : 設置在一個范圍內刪除數據,如果這個范圍內沒有刪除的這個對象則不會刪除任何東西。例子中因為obj對象在 數組 0 到 6的范圍內,所以obj就被刪除掉了。
[muArray?replaceObjectAtIndex: withObject:@""]; 替換某索引值對應的對象。
isKindeOfClass,isMemberOfClass,id 動態數據類型:
對象在運行時獲取其類型的能力,成為內省,內省有很多種方法實現:
判斷對象類型:
-(BOOL) isKindOfClass: classObj判斷是否是這個類或者這個類的子類的實例。
-(BOOL) isMemberOfClass: classObj 判斷是否是這個類的實例,和父類沒有關系。
id類型可以指向任何類的實例,不需要強轉。 example: TestCourse *course =?[[TestCourse alloc]?init];? id t = course; NSString:字符串比較方法 isEqualTostring [string1?compare:string2];? NSArray?*array?=?[nstring?componentsSeparatedByString:@","]; 按照指定的字符分割字符串。 使用標準的c創建字符串 char?*Cstring?=?"字符串"; ? NSString * string = [[NSString?alloc]?initWithUTF8String:Cstring];?[string1?hasPrefix:@"aaa"]匹配以“aaa”開頭的字符串。
[string2?hasSuffix:@"bbb"]匹配以“bbb”結尾的字符串。
[string?stringByReplacingCharactersInRange:rang?withString:@"大產"];將搜索出來的字符串替換成指定字符串。
[string?stringByReplacingOccurrencesOfString?:@"?"?withString:@"*"]; ?將所有為“ ”的字符串全部替換為“*”
NSInteger?integerNumber?=?11; ?
NSString?*?string?=?[NSString?stringWithFormat:@"%d",integerNumber];將NSInteger轉換成NSString。
NSInteger?integer?=?[string?intValue]; ?將NSString轉化成NSInteger.
?
?
轉載于:https://www.cnblogs.com/yanliang/archive/2013/03/10/2952951.html
總結
以上是生活随笔為你收集整理的Objective-C 语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android学习第三天--事件监听器
- 下一篇: 快速排序——算法系列