序)閒扯幾句 php
很早就想入手ios開發,可是一直沒有機會,我的沒有水果機器,上個公司上班的那臺mac mini雖然就在我身邊,灰都有一層了,可是一直沒有機會開機學習下,由於事多,自上一篇文章後,離職後,新公司給配備了mac pro,正好知足了本身都心願,開始水果軟件開發。本身也是從0開始,學習它不過就這3-4天而已,可是以前對oc仍是有些瞭解,所以憑着android的感受去作,移動端嘛,不都是佈局上丟組件,我相信也有人若是從android走到ios也會有這樣的思想吧,個人思路是:html
到這裏基原本說就能夠作一些簡單的應用了,最好的方式就是趕忙加入一個ios項目組,接下來的東西就是深刻了,對於有android的開發經驗來講,走到ios開發去不是很難,可能難的地方是對oc的理解,我也不得不說oc的語法對於用慣了java/c+的人來講確實很奇葩,就像作php的熱忽然看見erlang同樣。java
準備)oc基礎,從面向對象起步android
關於oc的語法http://www.cnblogs.com/lm3515/archive/2010/12/20/1911135.html這個朋友總結的很好,看完這個基本就能開始了。ios
一)HelloWorldc++
任何語言都是從它起步,不解釋,當我拿到水果機的第一件事是幹嗎?打開xcode趕忙建立一個ios的helloworld。sql
看到上面的目錄結構,相信作過cocos的朋友看起來是否是有點熟悉?其實它的運行流程都和cocos差很少。數據庫
ios裏面文件的後綴:xcode
.h:和c同樣,頭文件服務器
.m:message的縮寫,也就是oc對h文件對實現
.mm:若是咱們的一個文件裏面即有c++代碼,也有oc代碼,就將它命名爲.mm後綴,編譯器會分別處理oc和c+代碼。
.xib:之前叫nib,nib是直接編譯成二進制,xib是xml文件,也就是佈局文件,就是android裏面的layout_xxx.xml。項目裏面由一個LunachScreen的xib文件,它就是ios在剛剛啓動的時候顯示的東西,若是你的應用啓動快,它就是一閃而過,啓動慢可能會顯示久點,至關於loading。
二)流程
ios的入口函數是main.m文件,裏面
一個項目項目結構圖如上所示,看到這個結構,咱們很關心它的流程是怎樣,ios裏面它的入口是main.m文件,在main裏面聲明瞭代理類的運行:
#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
這裏咱們看到由main啓動了appdelegate這個代理類,在這個代理類裏面咱們能夠設置ios默認啓動哪一個試圖做爲第一個顯示試圖,以下所示:
#import "AppDelegate.h" #import "ViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { _window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; ViewController *friendController=[[ViewController alloc]init]; UINavigationController *navigationController=[[UINavigationController alloc]initWithRootViewController:friendController]; _window.rootViewController=navigationController;
[_window makeKeyAndVisible]; return YES; } - (void)applicationWillResignActive:(UIApplication *)application { } - (void)applicationDidEnterBackground:(UIApplication *)application { } - (void)applicationWillEnterForeground:(UIApplication *)application { } - (void)applicationDidBecomeActive:(UIApplication *)application { } - (void)applicationWillTerminate:(UIApplication *)application { } @end
在這裏咱們設置了默認顯示的第一個視圖爲:ViewController,而且咱們設置了一個東西:
_window.rootViewController=navigationController;
這個咱們能夠理解爲android的Context,有了這個咱們就能夠全局控制管理view,最開始我沒有設置這個,因此view頁面跳轉總是跳轉不過去,而且官方也推薦使用這種方式而不是直接在view中跳轉。
三)view
如今咱們來到了ViewController,它就是android中的activity,activity繼承至Activity,而ios中它繼承UIViewController,所以在這裏就能夠操做這個頁面的視圖,而View的跳轉也就是咱們android裏面activity的跳轉。
它的跳轉方式以下:
LoginViewController *ickImageViewController = [[LoginViewController alloc] init]; [self.navigationController pushViewController: ickImageViewController animated:true];
就是push和pop view的方式,經過咱們前面定義的根view。
四)佈局
ios的佈局可比android舒服多了,由於屏幕少啊,再多也沒android多吧,在ios裏面佈局分爲三種:
五)結尾
好吧,這兩天後可以使用3種佈局建立一些界面,而後在上面丟一些組件,操做下本地數據庫,網絡下載點東西,以前我一直作服務器,也在andrid下搞xmpp,正好ios下也練手。
至於對於ios的深刻分析瞭解,還真不是一天兩天能學出來的,能作和懂是兩碼事了,後者最好是和別人學習。
寫的有些隨意和雜。