2013年8月23日 星期五

Eclipse, 我不怕死的來了!


老板說,既然Xcode程度太高,那退回來看看Eclipse吧.

光安裝和認識架構就複雜無比.我想,還是回Xcode好了,雖然我Xcode程度尚屬“門外晃”,至少Tool Bar和模擬器的界面看起來很~舒~服~

-_-#

2013年8月19日 星期一

Xcode_圖檔"真的"最好是.png

記得Xcode趕鴨子上架 Lesson 5嗎?
不是有個小圖一直出不來,整個從頭再做兩次也一樣.
原來,只要把所有 .jpg圖檔通通改成 .png就全解決了....~啊~啊~啊~一串烏鴉飛過~...馬上被講師更正:其他圖檔也是ok的,只要記得自己手動加上副檔名即可. (換言之,Xcode只會幫png自動加副檔名,省事很多,而且可以做鏤空效果)

^_^

2013年8月17日 星期六

Xcode趕鴨子上架 Lesson 5 (最後一天課)

前天老板跟我借講義Vol.2來瞧,瞧完皺一皺眉說:這個對你有點難吧?
(OS)啊現在是怎樣?我都進爐烤四週啦...
今天是鴨子要烤熟出爐的時間.您現在才覺醒啊,是聞到烤鴨香味嗎?

** 9:00 講師在說明第四份作業,程式碼改天再補.

** 9:30 NSNotification
** 10:15 __Block前方是雙底線 (Block型別最好放在最後面)
** 10:17 等號右邊才是真正的物件

Vol.2 pp.103~128 #@£¶$%~*!*,完全像天書,只剩中文連接詞聽得懂.
(我剛去買一瓶汽水,發現這還蠻能振奮精神的)
(剛忍不住上線一下,居然發現同學也在線上,大家為了保持振奮的精神各出奇招.)

** 10:50 現在要來學TableView. 話說:Line也是用TableView做的喔.
先dequeueReusableCellWithIdentifier:CellIdentifier;確定不佔空間,才繼續寫...
現在要練習一段講義上沒有的TableView.(p.156)原來要寫dataSource要從這兒拉一條線到viewController,今天助教沒來,害我卡好久,幸好有同學指點一下.

然後才能在裡頭寫這段程式............噹噹!寫好了.這個還算實用.


** 13:40 UITableViewController是tableView的Data來源,也是delegate對象.
** 下半場好快,全然跟不上@_@...

** 17:00 居然還有結業證書.這下可以交差了.(啊~好心虛噢)
回家還得努力練習!

** 21:30 才把下午的練習做出個九成來. 笨鳥慢飛.
(各項目前面應該還要有個小圖,不知上哪去了?)

^_^....繼續慢慢慢慢飛...

2013年8月12日 星期一

UIKit Framework/ UIView和CALayer

** UIApplication(Main.m)每個程式只有一個,用來分配管理Event/ 處理status bar,程式icon...__________(credit:Michael Pen)


** UIView的繼承結構為: UIResponder : NSObject。
---UIKit主要是用來構建用戶界面(UIView的size、frame、position),並且是可以響應事件的。

** CALayer的繼承結構為: NSObject。
---它定義了position、size、transform、animations 等基本屬性。

兩者最大區別是UIView可以響應用戶事件,CALayer不可以。
UIView側重於對顯示內容的管理,CALayer側重於對內容的繪制。
(credit:Internet)

2013年8月10日 星期六

Xcode趕鴨子上架 Lesson 4

** 9:00~9:15 檢討作業3, 厚厚,又厚臉皮地miss掉.
來看看老師怎麼做吧________專案創建檔和程式碼(在此)
** 9:15 覆寫drawRect,畫在rect這個方形上.

** 9:23 早餐忘記喝咖啡,好睏喔zzz~ 都是昨天House of Cards害的.

** 9:45 練習做到一半,講師跑來問我是不是XX老師. (又破功了)
原來他的合夥人的孩子是我的學生,唉~教過太多學生,無所遁形啊=_=...現在,你知道為何我選擇壁球嗎?
因為不想在運動中心到處和學生&學生家長寒暄啊

** 10:30 目前講畫圖,好像不難理解.
看出這些質怎麼改了嗎? 再來一個等腰三角形

** 中午做Vol.2 p.24雙圖滑動的動畫時,一直鬼打牆,跑不出來.
原來是我的模擬器是6.1版(和講義的5.0不一樣)在Storybnoard中的Identity的Autolayout預設值是[打勾],這個勾沒去掉,怎麼都不會動.
當然不可能是我自己領悟的(慧根太低),要感謝細心的助教.

** 15:20 老師都不知道講到天邊哪朵雲了(p.71 Delegate),我還在這兒打轉.其實,就我的程度,也不能聽得太認真,這樣腦袋會完全打結,然後就很容易陷入昏睡,我先聽個三分,培養一下感覺,回家再慢慢練習.

^_^

2013年8月9日 星期五

什麼是View controller?

Q:什麼是View controller?
A:View Controller我自己的理解是=畫面管理,
也就是每個畫面(view)到下一個畫面(view)要顯示什麼東西,
如何顯示,如何釋放(釋出空間).當内存緊張的時候,則將view釋放
且viewDidUnload會被調用,viewDidUnload中你可以進行後繼的
内存清理工作(主要是界面元素的釋放,當再次加载的時候需要重建)

Q:View Controller有幾種?
A:iPhone的系統有三個特別view controllers,用來管理
Navigation Bar、Tab Bar、Table View。
NavigationController:畫面最上方的橫欄,通常包含上下一層,存檔,編輯等功能鍵
TabBarController:畫面最下方的橫欄,像標簽頁一樣,用來跳到不同主題
TableViewController:系統內定的表格模組,通常在畫面正中間或最左邊

另外,你也可以自己寫cunstom View Controllers。所以,可以有無限多種。

Q:什麼是view hierarchy?
A:View可以將另一個View添加為subview(子代),構成一個View Hierarchy.
當某一個View添加到window的View Hierarchy中時,將被“顯示”。
(重要!)一個ViewController應該且只應該管理一個view hierarchy.

為什麼呢? 我還沒弄懂,詳解請參考這個網站http://www.cnblogs.com/jy578154186/archive/2012/12/12/2815268.html
或是Cocoa官網View controllers in UIKit


^_^

2013年8月3日 星期六

Xcode趕鴨子上架 Lesson 3

** 9:00~9:50 老師在檢討演示上週的回家作業如何做?
ㄟ~ 就是我不會做的那個. 沒關係,我看得懂就好了. 我如果學兩天就會xCode,那老板要開除那些工程師了,LOL.

天啊~522行Xcode專案創建檔(.pbxproj)耶, 這樣應該連看懂都粉難. 不過,第一次發現程式碼也能這麼有美感,好乾淨的畫面.(美工的職業病又來了)

**9:50 哇!發現講師超認真的,連xCode中的各種設定也都給我們了.

世風日下啊,現在都是老師比學生用功呢
(講師OS:code全給你們了還寫不出來,淚奔~)

** 9:55 連一早講到現在的每張簡報都有! (共46張,應該會講到10:15才下課休息)

** 對了,今天發新書,原來上次那本2cm厚的只用三天,Vol. 2薄一點,約1.2cm

** 10:08 下課,和我預測的差不多:-p
** ARC enable比較容易crash(這是好的)讓錯誤提早出現,目的:避免浪費記憶體空間.
** 命名原則:具解釋性,清楚,不會混淆(Vol.1, pp.268~272)

** 10:40 再找答案時,發現一個不錯的站: http://www.cocoachina.com/解答了我一些概念問題.

一、XCode、Objective-C、Cocoa說的是幾樣東西?

答案:三樣東西。
XCode:你可以把它看成是一個開發環境,就好像Visual Studio或者Netbeans或者SharpDevelop一樣的玩意。你可以將Interface Builder認為是Visual Studio中用來畫界面的那部分功能單獨提出來的程序。

Objective-C:這是一種與言,就好像c++是一種與言,Java是一種語言,c#是一種語言。

Cocoa:是一大堆函式庫,就好像MFC、.NET、Swing這類玩意,人家已經寫好了一堆現成的東西,你只要知道怎麼用就可以了。

二、關於Objective-C

问题:程式中有大量的減號、中括號和NS***,他們是什麼玩意?
答案1:減號表示一個函数、或者方法、或者消息的開始,怎麼说都行。比如c#中:
private void hello(bool ishello)
{
//OOXX
}

用Objective-C寫出來就是
-(void) hello:(BOOL)ishello
{
//OOXX
}
挺好懂的吧?
不過在Objective-C裡面没有public和private的概念,你可以認為全是public。

答案2:
中括號可以認為是如何調用你剛才寫的這個方法,通常在Objective-C裡說“消息”。比如C#裡你可以這麼寫:
this.hello(true);

在Objective-C裡,就要寫成:
[self hello:YES];

答案3:
老喬當年被人擠出蘋果,自立們戶時開了個公司叫做NextStep,這一整套開發包很是讓一些科學家們喜歡,而现在Mac OS用的就是NextStep這套函数庫。NextStep比較自戀地把函数庫裡面所有的類都用NextStep的縮寫命名,也就是NS***了。比較常見的比如:
NSLog
NSString
NSInteger
NSURL
NSImage


你會經常看到一些教學裡用到:NSLog (@"%d",myInt);

這句話主要是在console裡面跟蹤使用,你會在console裡面看到myInt的值(在XCode裡面運行的時候,按“command+shift+Y“打開dbg窗口即可看到)。而我們在其他開發環境裡面可能會比較習惯使用MessageBox這種方式進行測試。

****...講師OS: 以上這些我第一節課就說過了. =_=... ******
(我覺得我要發酵一下,才能吸收一些東西,昨天重做第一堂課的練習,稍微順一點了.)

** 下午開始在說記憶體管理(不太理解)只知道老師說iPad一代對記憶體要求很嚴格,App很容易閃退.(這是千真萬確的,不過我還是很愛我的一代,是指標性產物@Oxford)

** 14:00 不論是不是新手,都建議用ARC. (Vol.1 p.286)

** 14:46 這是「樂透選號機」老師上午說要做完才能去吃飯的,我現在才弄出來,進度落後全班3hr. 不過,還是很開心,今天下課要拿這幾號去買,看會不會中.

** 14:54
^_^