1. 程式人生 > >IOS對比Android學習筆記

IOS對比Android學習筆記

一. 語言基礎,面向物件

資料型別

String NString

變數

陣列

函式

日期

集合,容器

static

private,public,protected

this 和 self

反射

記憶體管理

1.ios 手動記憶體管理和自動記憶體管理

Xcode 4.2 之前,開發者需要通過 retain release autorelease 進行記憶體管理,所以需要去理解物件的引用計數機制,(對習慣java的開發者來說就麻煩了),Xcode 4.2之後加入了自動引用計數(ARC),方便開發

[email protected]

IOS 補充

預處理

結構體

KVC 和 KVO

類別Category

協議Protocol 和 委託(代理)Delegate

二. Android應用和IOS應用

引入第三方依賴庫:

Android的兩種方式:

1.下載jar包到libs目錄
2.使用gradle配置compile 某個依賴庫

IOS的兩種方式

1.使用CocoaPods

相關資料:
安裝:

sudo gem sources --remove https://rubygems.org/
sudo gem sources --add https://gems.ruby-china.org/
sudo
gem update --system mkdir -p $HOME/Software/ruby export GEM_HOME=$HOME/Software/ruby gem install cocoapods export PATH=$PATH:$HOME/Software/ruby/bin

初次執行pod install,會下載個git好慢,我是半夜下才下好了,莫非git半夜網速快?

2.引入原始碼

3.引入依賴庫

靜態資源目錄

Http請求

Json處理

檔案IO

基本UI

UI控制元件的繫結:

對於Android,可以在layout的xml檔案裡放置好button等控制元件,然後在程式碼裡通過findvViewById來實現物件和介面控制元件的繫結。
對於ios,有兩種方式實現繫結:
1.ctrl鍵拖動sb裡面的按鈕連線的.m檔案的interface宣告中,xcode就會生成一個對應的物件(IBoutlet機制)
2.為控制元件設定tag,然後在程式碼裡利用viewWithTag關聯tag對應的控制元件

Button,TextView,EditText

1.android和html的介面控制元件有個叫內邊距的東西叫padding
到了ios這裡叫insets

佈局

android的幾種佈局管理

常用的比如LinearLayout,RelativeLayout等

ios的佈局

AutoLayout
教程: https://www.youtube.com/watch?v=QVKwbLvk8Sg
總結: 原來xcode是可以點開preview介面,檢視當前佈局在不同尺寸下的效果,吐槽下xcode介面按鈕又多又小藏的那麼深都不知道幹嘛用的,點中控制元件,然後Editor->Align 可以讓控制元件水平或垂直居中,類似android的layout的layout_gravity。然後Editor->Pin 可以讓控制元件的寬高自動根據螢幕調整,這點比android方便多了。ios的constraints是用來做控制元件自動佈局時候的相關約束規則,可以選中控制元件->Editor->Resole AutoLayout Issues 進行相關約束配置。
更多AutoLayout參考:
http://www.cocoachina.com/industry/20131203/7462.html

對話方塊

android: Dialog,AlertDialog
ios:UIAlertView

ViewController與Activity

ViewController

ios的ViewController相當於Android的Activity
比較麻煩的是暫時發現,假如我在Android Studio裡面建立一個Activity,AS會自動幫我生成這個Activity的 .java類檔案 .xml 佈局檔案,但是在ios的storyBoard 裡面拖入一個ViewController後,我仍然需要手動建立.h .m檔案,併為這個新的ViewController通過CustomClass 手動關聯對應的類,然後就覺得心好累。

在Android裡面,我們通常會建立多個Activity,然後通過Intent來實現Activity之間的跳轉。
而在ios裡,可以建立並選中一個ViewController(比如預設xcode預設建立好的viewController),然後用NavigationController把這個ViewController裝起來(操作:Editor->Embed in->Navigation Controller),另外可以通過Segue實現ViewController之間的連線和跳轉。
NavigationController教程(自行科學上網):
https://www.youtube.com/watch?v=reVzUBCS0sw

Tabbar Controller

在ios上實現tab效果確實要比Android上實現要簡單的多哈
Tabbar Controller 以及 Tabbar結合Navigation教程(自行科學上網):
https://www.youtube.com/watch?v=qv-MOlsV3dw

表格和ListView

高階UI

tab

webview

側滑抽屜

事件

資料儲存

CoreData, SQLite,

執行緒

通知和推送

三. 遊戲程式設計

cocos2d cocos2d-x

unity