只是我的日常學習助手,大家不要抱有期待了.
工具及輔助技能
- 英語學習
簡明邏輯學導論 編程英語
freeCodeCamp(英語)
休息
合理的休息才能高效學習,每4個小時就需要休息調整.
??
http://ruziniu0510.blog.163.com/blog/static/8605017920143173290427/
慢就是快.
ADD/ADHD 正念冥想
小知識
可以做個core animation框架 自動動畫.讓所有UI1100 控件由程序員手動移動,模擬動畫呈現過程,并設置幾個連接方式,震動,排隊,跳躍.....也可以由自定義(根據物理定律)
在用戶各種操作中添加聲音,動畫.讓軟件活起來.(關鍵:動畫的方式,以及不影響客戶正常操作.保證持久性,不厭煩,個性化)
(小碼哥官方視頻)
http://www.520it.com/f/list-5e4e600be03f447194a6af100360bec1.html
單例小作用:
我們需要創建一個字典。用來保存當前存在的下載。使單例持有它,從而不會被銷毀
WebView (一次加載所有圖片)
WKWebView(解決圖片內存的問題,IOS8.0以上)
自定義初始化方法需要initWith開頭(大小寫敏感)
origin :view 的坐標 x , y , z
size : view的尺寸 width height
setvalue;
實際上self.shopData是方法調用,詳細的方法是[self shopData], 一旦使用self.shopData 就導致自己調用自己的方法了
iOS的點語法,放等號右邊就是調用getter,放左邊就是調用setter
下劃線訪問的書成員變量,不調用getter方法,點語法才會調用getter方法。
--www.lxweimin.com/p/b9551a761419
define kLogFuncAndLine NSLog(@"%s -- %d",FUNCTION,LINE)
可以查看該方法在第幾行,是哪個方法走的.
壓縮包需要用壓縮軟件打開,不然只會得到一些無用或(殘缺)的文件.
當你需要模仿時,從github上下載源碼
當你需要學習新知識時,谷歌
當你遇到bug時你需要去stackflow上查找.
原來解析JSON文件 叫做JSON的序列化.
json數據 ----> OC對象(反序列化)
OC對象 ----> json數據 (序列化)
序列化:主要是為了傳輸/存儲方便,將要傳輸/存儲的對象序列化為二進制的數據流,效率很高。
反序列化:在讀取或者接收數據的時候,把數據轉換成OC對象,便于使用。
http://my.oschina.net/aslanjia/blog/637476
//防崩
//由于plist文件是后臺給我們的,而這些變量名與系統關鍵字重合,所以我們就要寫下面這個程序來覆蓋它的變量名.避開系統關鍵字
/*Given that an invocation of -setValue:forKey: would be unable to set the keyed value using its default mechanism, set the keyed value using some other mechanism. The default implementation of this method raises an NSUndefinedKeyException. You can override it to handle properties that are dynamically defined at run-time.
鑒于setvalue的調用:forKey:將無法使用其默認設置鍵值機制,設置鍵值使用一些其他的機制。該方法的默認實現提出了一個NSUndefinedKeyException。你可以覆蓋它來處理在運行時動態地定義屬性。
*/
/* if ([key isEqualToString:@"id"]) { //如果key值等于某個系統關鍵字
_ID = value ; //那么就用ID(自定義變量名)來覆蓋這個值.
}*/
//key 在模型中找不到的key(字典中的) value 前面key在字典中對應的value
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
if ([key isEqualToString:@"id"]) {
_ID = value;
}
if ([key isEqualToString:@"description"]) {
_descriptions = value;
}
}
寫代碼時,加[]和沒加 自動提示的是兩種代碼.
如果報黃是一段代碼報黃,那么可能是你寫的兩邊代碼類型不匹配.(如tableviewcell 類型,你只寫到tableView)
JSPatch :
- 在JSPatch 中創建應用并獲得appkey
- 導入框架,工程中添加appkey與JSPatch形成關聯.
- 創建一個空項目 (iOS other --> empty)
- 在空項目中寫入bug具體位置,并修改成正確代碼(需要OC轉成JS格式)
defineClass("文件名", {
viewDidLoad : function() { //文件名
self.super().viewDidLoad();
require('NSArray'); //修改的代碼
var arr = ["1", "2", "3", "4"];
console.log(arr[3]);
}
})
- 修改完在JSPatch 中提交文件,之后程序運行會自動將 錯誤的代碼替換成修改的代碼.
資源類 : iOS推薦博客 http://www.cocoachina.com/ios/20150626/11348.html
http://blog.sina.com.cn/s/blog_4b55f6860101hi53.html
我們可以點擊工程名 在右邊的class Prefix 來為你的各個文件添加前綴
github閱讀源碼
閱讀源碼是提高編程能力的重要方法,但是別人的程序一般都很大,讓人無從下手.我們需要遵循一定規律來理清工程邏輯,有順序的閱讀.
當需要整篇閱讀的時候我們需要運用MVC的模式來看代碼,將程序的幾大功能塊分成MVC模式,實現子功能又需要MVC模式,就如同字典轉模型一樣,一層層遍歷.分成三塊來看.好的代碼需要遵循此原則.
可以學學架構,MVC模式就是架構的一種.
查看demo代碼中放在Assets中圖片方法.
【鏈接】iOS學習之解壓Assets.car
http://www.lxweimin.com/p/a5dd75102467