只是我的日常學(xué)習(xí)助手,大家不要抱有期待了.
工具及輔助技能
一個(gè)IOS工程師博客
http://daiweilai.github.io/2015/11/17/iOS%E5%BA%94%E7%94%A8%E5%8F%91%E5%B8%83%E4%B8%AD%E7%9A%84%E4%B8%80%E4%BA%9B%E7%BB%86%E8%8A%82/
- 英語(yǔ)學(xué)習(xí)
簡(jiǎn)明邏輯學(xué)導(dǎo)論 編程英語(yǔ)
freeCodeCamp(英語(yǔ))
休息
合理的休息才能高效學(xué)習(xí),每4個(gè)小時(shí)就需要休息調(diào)整.
??
http://ruziniu0510.blog.163.com/blog/static/8605017920143173290427/
慢就是快.
ADD/ADHD 正念冥想
小知識(shí)
可以做個(gè)core animation框架 自動(dòng)動(dòng)畫(huà).讓所有UI1100 控件由程序員手動(dòng)移動(dòng),模擬動(dòng)畫(huà)呈現(xiàn)過(guò)程,并設(shè)置幾個(gè)連接方式,震動(dòng),排隊(duì),跳躍.....也可以由自定義(根據(jù)物理定律)
在用戶(hù)各種操作中添加聲音,動(dòng)畫(huà).讓軟件活起來(lái).(關(guān)鍵:動(dòng)畫(huà)的方式,以及不影響客戶(hù)正常操作.保證持久性,不厭煩,個(gè)性化)
(小碼哥官方視頻)
http://www.520it.com/f/list-5e4e600be03f447194a6af100360bec1.html
單例小作用:
我們需要?jiǎng)?chuàng)建一個(gè)字典。用來(lái)保存當(dāng)前存在的下載毙芜。使單例持有它贷帮,從而不會(huì)被銷(xiāo)毀
WebView (一次加載所有圖片)
WKWebView(解決圖片內(nèi)存的問(wèn)題,IOS8.0以上)
自定義初始化方法需要initWith開(kāi)頭(大小寫(xiě)敏感)
origin :view 的坐標(biāo) x , y , z
size : view的尺寸 width height
setvalue;
實(shí)際上self.shopData是方法調(diào)用划滋,詳細(xì)的方法是[self shopData], 一旦使用self.shopData 就導(dǎo)致自己調(diào)用自己的方法了
iOS的點(diǎn)語(yǔ)法噪猾,放等號(hào)右邊就是調(diào)用getter,放左邊就是調(diào)用setter
下劃線(xiàn)訪(fǎng)問(wèn)的書(shū)成員變量蓝撇,不調(diào)用getter方法,點(diǎn)語(yǔ)法才會(huì)調(diào)用getter方法缭裆。
--www.reibang.com/p/b9551a761419
define kLogFuncAndLine NSLog(@"%s -- %d",FUNCTION,LINE)
可以查看該方法在第幾行,是哪個(gè)方法走的.
壓縮包需要用壓縮軟件打開(kāi),不然只會(huì)得到一些無(wú)用或(殘缺)的文件.
當(dāng)你需要模仿時(shí),從github上下載源碼
當(dāng)你需要學(xué)習(xí)新知識(shí)時(shí),谷歌
當(dāng)你遇到bug時(shí)你需要去stackflow上查找.
原來(lái)解析JSON文件 叫做JSON的序列化.
json數(shù)據(jù) ----> OC對(duì)象(反序列化)
OC對(duì)象 ----> json數(shù)據(jù) (序列化)
序列化:主要是為了傳輸/存儲(chǔ)方便键闺,將要傳輸/存儲(chǔ)的對(duì)象序列化為二進(jìn)制的數(shù)據(jù)流,效率很高澈驼。
反序列化:在讀取或者接收數(shù)據(jù)的時(shí)候辛燥,把數(shù)據(jù)轉(zhuǎn)換成OC對(duì)象,便于使用。
http://my.oschina.net/aslanjia/blog/637476
//防崩
//由于plist文件是后臺(tái)給我們的,而這些變量名與系統(tǒng)關(guān)鍵字重合,所以我們就要寫(xiě)下面這個(gè)程序來(lái)覆蓋它的變量名.避開(kāi)系統(tǒng)關(guān)鍵字
/*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的調(diào)用:forKey:將無(wú)法使用其默認(rèn)設(shè)置鍵值機(jī)制,設(shè)置鍵值使用一些其他的機(jī)制缝其。該方法的默認(rèn)實(shí)現(xiàn)提出了一個(gè)NSUndefinedKeyException挎塌。你可以覆蓋它來(lái)處理在運(yùn)行時(shí)動(dòng)態(tài)地定義屬性。
*/
/* if ([key isEqualToString:@"id"]) { //如果key值等于某個(gè)系統(tǒng)關(guān)鍵字
_ID = value ; //那么就用ID(自定義變量名)來(lái)覆蓋這個(gè)值.
}*/
//key 在模型中找不到的key(字典中的) value 前面key在字典中對(duì)應(yīng)的value
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
if ([key isEqualToString:@"id"]) {
_ID = value;
}
if ([key isEqualToString:@"description"]) {
_descriptions = value;
}
}
寫(xiě)代碼時(shí),加[]和沒(méi)加 自動(dòng)提示的是兩種代碼.
如果報(bào)黃是一段代碼報(bào)黃,那么可能是你寫(xiě)的兩邊代碼類(lèi)型不匹配.(如tableviewcell 類(lèi)型,你只寫(xiě)到tableView)
JSPatch :
- 在JSPatch 中創(chuàng)建應(yīng)用并獲得appkey
- 導(dǎo)入框架,工程中添加appkey與JSPatch形成關(guān)聯(lián).
- 創(chuàng)建一個(gè)空項(xiàng)目 (iOS other --> empty)
- 在空項(xiàng)目中寫(xiě)入bug具體位置,并修改成正確代碼(需要OC轉(zhuǎn)成JS格式)
defineClass("文件名", {
viewDidLoad : function() { //文件名
self.super().viewDidLoad();
require('NSArray'); //修改的代碼
var arr = ["1", "2", "3", "4"];
console.log(arr[3]);
}
})
- 修改完在JSPatch 中提交文件,之后程序運(yùn)行會(huì)自動(dòng)將 錯(cuò)誤的代碼替換成修改的代碼.
資源類(lèi) : iOS推薦博客 http://www.cocoachina.com/ios/20150626/11348.html
http://blog.sina.com.cn/s/blog_4b55f6860101hi53.html
我們可以點(diǎn)擊工程名 在右邊的class Prefix 來(lái)為你的各個(gè)文件添加前綴
github閱讀源碼
閱讀源碼是提高編程能力的重要方法,但是別人的程序一般都很大,讓人無(wú)從下手.我們需要遵循一定規(guī)律來(lái)理清工程邏輯,有順序的閱讀.
當(dāng)需要整篇閱讀的時(shí)候我們需要運(yùn)用MVC的模式來(lái)看代碼,將程序的幾大功能塊分成MVC模式,實(shí)現(xiàn)子功能又需要MVC模式,就如同字典轉(zhuǎn)模型一樣,一層層遍歷.分成三塊來(lái)看.好的代碼需要遵循此原則.
可以學(xué)學(xué)架構(gòu),MVC模式就是架構(gòu)的一種.
查看demo代碼中放在Assets中圖片方法.
【鏈接】iOS學(xué)習(xí)之解壓Assets.car
http://www.reibang.com/p/a5dd75102467