-
sdwebimage 無法下載圖片 報
403錯誤 檢查請求頭是否加入user-agent,如下:
NSString * userAgent = [NSString stringWithFormat:@"%@/%@ (%@; iOS %@; Scale/%0.2f)",
[[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleExecutableKey] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey],
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] ?: [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey],
[[UIDevice currentDevice] model], [[UIDevice currentDevice] systemVersion],
[[UIScreen mainScreen] scale]];
[[SDWebImageDownloader sharedDownloader] setValue:userAgent forHTTPHeaderField:@"User-Agent"];
由github 獲得知識
iOS 8下 當(dāng)
viewcontroller下有一個scrollview并設(shè)置代理為當(dāng)前viewcontroller滑動過程中退出當(dāng)前頁面時會有崩潰現(xiàn)象,解決方式為viewcontroller dealloc時 設(shè)置scrollview的delegate為nil-
直接設(shè)置contentOffset屬性與 使用contentOffset:animated:的區(qū)別
如果animated這一參數(shù)設(shè)置為NO,或者直接設(shè)置contentOffset這個property,delegate會收到一個
scrollViewDidScroll:消息。如果animated這一參數(shù)設(shè)置為YES,則在整個動畫過程中,delegate會收到一系列的scrollViewDidScroll:消息,并且當(dāng)動畫完成時,還會收到一個scrollViewDidEndScrollingAnimation:消息。 -
swift 弱引用
weak字符串修飾的即為弱引用對象,并不會引起引用計數(shù)增加,當(dāng)對象被釋放(回收)之后,weak修飾的變量將指向nil,weak引用是一種非常安全的引用方式。ps:weak修飾的類型一定是個可選值類型unowned字符串修飾的也為弱引用對象,但是與weak不同的是,unowned不允許設(shè)置為可選值類型,也不允許有nil值的情況。之前的Swift版本,unowned修飾的對象可以正常書寫,只有在運(yùn)行時才會崩潰報錯,在3.0版本編譯器會檢測其修飾的對象是否為nil。
-
hash 與 isEqual
當(dāng)一個實例作為NSDictionary的key時、作為NSSet的一個元素時,會調(diào)用hash方法
為了優(yōu)化判等的效率, 基于hash的NSSet和NSDictionary在判斷成員是否相等時, 會這樣做
- Step 1: 集成成員的hash值是否和目標(biāo)hash值相等, 如果相同進(jìn)入Step 2, 如果不等, 直接判斷不相等
- Step 2: hash值相同(即Step 1)的情況下, 再進(jìn)行對象判等, 作為判等的結(jié)果
簡單地說就是
hash值是對象判等的必要非充分條件