iOS 7應用開發公開課筆記 L4:Foundation and Attributed Strings

1.容器對象的copy 與mutalbeCopy方法:
·無論是可變或不可變對象,mutalbeCopy方法創建並返回一個可變對象;copy方法返回一個不可變對象;
·不可變對象中,copy淺複製,即指針複製;可變對象中,copy創建一個不可變對象;

·容器類所容對象,不論是可變或不可變,copy 、mutableCopy返回的對象裏所包含的對象都是淺複製,即指針與以前容器對象裏的對象一樣。

2. 需注意:方法返回類型是struct時,不能將消息發送給nil,因爲返回的struct 不會是nil(結構體裏key值都爲0),而是未定義。
3.動態類型綁定(多態、運行時):ID.
ID的保護:判斷是否是某類型再發送消息(即內省,多用於數組或MVC盲通信(target-action\委託等)):
isKindOfClass: \isMemberOfClass:\respondsToSelector (此三個方法是NSObject的方法)。
4. 選擇器(@selector()),類型 SEL
5.讓對象去運行某個方法
·(methods in NSObject):
[obj performSelector:];
[obj performSelector: withObject:] ;
·(methods in NSArray):
[array makeObjectsPerformSelector:]; //cool !!
[array makeObjectsPerformSelector:withObject:target] ; //target is an id
二、Foundation Framework
1.基類NSObject
· -(NSString*)description; 非常有用的方法(常重寫,調試、輸出描述信息),NSLogs()中的%@ 就是調用了它!!
2.NSNumber
·快速創建:@()
NSNumber *two=@2;
3.NSData :二進制數據包~用於save/restore/transmit raw data.

4.NSSet,無序集合,經過哈希處理~可高效查找元素,不過用的少(why?)。

NSOrderSet,NSMutableOrderSet

5.NSDictionary @{key1:value1;key2:value3};建議key 爲NSString類型,方便hash與比較。

6.NSUserDefaults作用於屬性列表(集合的集合),數據持久化。

  • 集合或集合的葉節點:NSArray、NSDictionary、NSNumber、NSString、NSDate、NSData...
只擁有這些集合的對象,即是屬性列表,比如NSString的數組。

  • NSDictionary的Key 和Value都是集合時,即是屬性列表。
  • NSUserDefaults 數據庫(不完全是數據庫,它很小,性能不好,只能存儲小東西,有點像永久型的NSDictionary)中存儲的一切都是屬性列表!!!

記得同步~!

7.NSRange 、NSNotFound
· typedef struct {
NSUinteger location; //起始位置
NSUinteger length; //長度
}NSRange
· NSNotFound 是location的一個重要值
e.g. NSRange r = [@"helloWord"rangeOfString @"hi"];

if(r.location==NSNotFound) {//找不到時 to do sth.}NSRange

NSRange是C Struct,不能存於堆中,不能作爲參數傳遞,當作爲參數時,使用NSRangePointer

(typedefNSRange * NSRangePointer)


8.重要的字體!! UIFont
可用已有樣式:UIFontTextStyleHeadline,
UIFontTextStyleCaption,etc
UIFontDescription:可拓字體樣式,加粗等(?未考證)。
9、NSAttributedString 、NSMutableAttributedString
爲所顯示的字符串設置字符的樣式屬性,字體色、背景色、描邊等。

e.g. NSMutableAttributedString *labelText=@{NSFontAttributedName:

[UIFontpreferredFontWithTextStyle:UIFontTextStyleHeadline]

NSForegroundColorAttributeName:[UIColor greenColor]}

  • NSAttributedString 不是NSString 的子類,-(NSString *)string 方法可返還應用了NSAttributedString的string,並應用NSString的方法
  •  

發佈了18 篇原創文章 · 獲贊 1 · 訪問量 9400
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章