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 手動關聯對應的類,然後就覺得心好累。
Navigation Controller
在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