78
再再再再再 Swift 再再再再 再再 再再再再再再再

再接再勵學 Swift 程式設計

  • Upload
    -

  • View
    181

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 再接再勵學 Swift 程式設計

再接再勵學 Swift 程式設計地圖、導航之程式運用

Page 2: 再接再勵學 Swift 程式設計

學習主題• 學習程式的歷程• 自我介紹與哈啦• 功力複習• 程式實作 (Swift)

• 問題與交流

Page 3: 再接再勵學 Swift 程式設計

個人簡介諸葛魔斌工作室:諸葛魔斌科技創作室學歷:高應大 --- 工管系 ( 非資訊科系 )E-Mail : [email protected]官方網站: http://twcts.comFacebook : https://goo.gl/volM7Z粉絲團 : https://goo.gl/LI08wh社群 : https://goo.gl/kjCsz1Line (id) : http://goo.gl/ayGW7dLine@ : http://goo.gl/pQHjWHLine Bot : http://goo.gl/ljdxfVPlay 商店: http://goo.gl/CkVdsdApp Store : http://apple.co/1Qehd64專長: VB(VBA) 、 C# 、 Java(Android) 、 Swift(iOS) 、 PHP 、 Python 、 Conrona 、 Golang 、 HTML/CSS 、 MySQL 、 FreeBSD 、 Server 架設、 CAD 、 ……

楊政斌

Page 4: 再接再勵學 Swift 程式設計

學習程式的歷程學生時期:打電動,沒有日夜的界限二專畢業:初次接觸 dBase 、 Lotus 使用 Clipper 做經銷存、應收付帳系統

工作階段 1 :接觸 Office ,開始使用 Excel(Lotus)

工作階段 2 :品保工作,自學圖表、函數、 VBA ,做出自動化品管系統興趣展開:自學 VB ,製作 ERP 系統,接觸 Linux 、 FreeBSD ,自學架設 Server

諸葛魔斌誕生

大學時期:半自學 Android App(Java) 、 C# 、 iOS App(Swift)

工作轉變:成立諸葛魔斌科技創作室,接案學習,救國團電腦資訊講師實績:

Page 5: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

Xcode : 安裝約 30 ~ 50 min.

Swift 基本需求: Mac (Mac mini 、 MacBook) ,黑蘋果 iPhone 或 iPad ( 非強烈需要 )

憑證鑰匙: 安裝約 3 ~ 5 min. ( 上架 App Store 需要 )

Page 6: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 7: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

輸入申請開發者帳號的 email ,並選取 " 儲存到磁碟 " 後選取繼續

Page 8: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

將檔案存於 " 桌面 " ,檔名為預設的CertificateSigningRequest.certSigningRequest 即可 ( 注意,此檔可以保存,以作為後續建立生產 Prodution 所需的 Provisioning 使用 )

Page 9: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 10: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 11: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定登入開發者後台 https://developer.apple.com/,並選取右上方的 "Member Center"

Page 12: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

選 "Certificates, Identifiers & Profiles"

Page 13: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 14: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 15: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

於 Certificates 中,按左上角的 "+" 按鈕後,選取 "iOS App Development" 以製作開發用的憑證

Page 16: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 17: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 18: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

此時會用到鑰匙圈存取所產生的馮證檔 "CertificateSigningRequest.certSigningRequest" ,選 "Choose File" 上此 "CertificateSigningRequest.certSigningRequest" 上傳,接著按 "Generate" 產生開發用的憑證檔

Page 19: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

點選 "Download" 下載後此憑證檔

Page 20: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

安裝開發者憑證 & 發佈憑證

Page 21: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定

Page 22: 再接再勵學 Swift 程式設計

憑證鑰匙安裝與設定WWDR 憑證:WWDR 即為 Worldwide Developer Relations Certificate Authority 憑證,所以開發人員皆需要安裝此憑證,只是此憑證不需刻意裝的原因是,在您安裝 XCode 即會安裝此憑證,當然,您也可以重新下載此憑證安裝。此憑證您可在於開發者網站,建立憑證的第一頁下方找到

Page 23: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

GPS 經、緯度資料讀取

Page 24: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

遊樂場,練習 Swift 語法的地方

建立新專案 ( 程式 )

開啟已存在專案 ( 程式 )

開啟其他專案 ( 程式 )

Page 25: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

專案模板選擇

Page 26: 再接再勵學 Swift 程式設計

地圖、導航之程式運用專案 ( 程式 ) 名稱組織 ( 創作者 ) 名稱組織識別 ( 網域 )專案 ( 程式 ) 包識別唯一、上架用

程式語言Objective-C 或

Swift

應用的設備手機、平板、通用

暫不勾選

Page 27: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

選擇存放資料夾

Page 28: 再接再勵學 Swift 程式設計

地圖、導航之程式運用專案包識別碼

版本修訂版次

開發者 ( 團隊 )選擇模擬器

Page 29: 再接再勵學 Swift 程式設計

地圖、導航之程式運用代理、協定

導覽區

程式控制佈局頁面

資源

編輯區設定區

Page 30: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

導覽區 編輯區設定區

Page 31: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

Label放置到佈局適當位置

Page 32: 再接再勵學 Swift 程式設計

地圖、導航之程式運用Label 物件宣告

動作程式

位置管理代理引入套件庫

Page 33: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

動作程式

Page 34: 再接再勵學 Swift 程式設計

地圖、導航之程式運用import UIKitimport CoreLocation  class ViewController: UIViewController, CLLocationManagerDelegate { @IBOutlet weak var lblLat: UILabel! @IBOutlet weak var lblLon: UILabel! @IBOutlet weak var lblHorizontal: UILabel! @IBOutlet weak var lblAltitude: UILabel! @IBOutlet weak var lblVertical: UILabel! @IBOutlet weak var lblDistance: UILabel! var locationManager: CLLocationManager = CLLocationManager() // 取得手機所處地理相關的資訊,包含所在座標 var startLocation: CLLocation! //CLLocationManagerDelegate ,定義了處理 CLLocationManager 的委外工作,以處理接收地理資訊後的工作 //CLLocationManager :取得資訊後,在委派給實作 CLLocationManagerDelegate 的物件,以處理取得地理資訊後的工作。  override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.delegate = self locationManager.requestWhenInUseAuthorization() locationManager.startUpdatingLocation() startLocation = CLLocation(latitude: 22.6138519, longitude: 120.3024543) // 目標緯度經度 }  override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }

Page 35: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { // 定位資訊 let latestLocation: AnyObject = locations[locations.count - 1] lblLat.text = String(format: "%.4f", latestLocation.coordinate.latitude) // 緯度 lblLon.text = String(format: "%.4f", latestLocation.coordinate.longitude) // 經度 lblHorizontal.text = String(format: "%.4f", latestLocation.horizontalAccuracy) // 水平精度 lblAltitude.text = String(format: "%.4f", latestLocation.altitude) // 海拔高度 lblVertical.text = String(format: "%.4f", latestLocation.verticalAccuracy) // 垂直精度 let distanceBetween: CLLocationDistance = latestLocation.distanceFromLocation(startLocation) // 計算 startLocation 與 latestLocation距離 lblDistance.text = String(format: "%.2f", distanceBetween) //距離 公尺 } func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { }}

Page 36: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

GPS 權限開放需求

Page 37: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

執行模擬器

Page 38: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

地圖顯示所在位置

Page 39: 再接再勵學 Swift 程式設計

地圖、導航之程式運用專案 ( 程式 ) 名稱組織 ( 創作者 ) 名稱組織識別 ( 網域 )專案 ( 程式 ) 包識別唯一、上架用

程式語言Objective-C 或

Swift

應用的設備手機、平板、通用

暫不勾選

Page 40: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

選擇 MapView拉到原視圖右邊空白處

Page 41: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

填入物件宣告

Page 42: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

勾選 User Location ,在地圖顯示所在位置

Page 43: 再接再勵學 Swift 程式設計

地圖、導航之程式運用MapView 物件宣告Location 變數宣告

動作程式

引入套件庫

Page 44: 再接再勵學 Swift 程式設計

地圖、導航之程式運用import UIKitimport MapKit class ViewController: UIViewController { @IBOutlet weak var uimap: MKMapView! var location : CLLocationManager!; // 座標管理元件 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. location = CLLocationManager(); //詢問使用者是否同意給 APP 定位功能 location.requestWhenInUseAuthorization(); // 開始接收目前位置資訊 location.startUpdatingLocation(); } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }

Page 45: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 override func viewDidDisappear(animated: Bool) { // 因為GPS功能很耗電 , 所以被敬執行時關閉定位功能 location.stopUpdatingLocation(); } func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) { // 取得目前的座標位置 let c = locations[0] as! CLLocation; //c.coordinate.latitude 目前緯度 //c.coordinate.longitude 目前經度 let nowLocation = CLLocationCoordinate2D(latitude: c.coordinate.latitude, longitude: c.coordinate.longitude); // 將 map 中心點定在目前所在的位置 //span 是地圖 zoom in, zoom out 的級距 let _span:MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.0005, longitudeDelta: 0.0005); self.uimap.setRegion(MKCoordinateRegion(center: nowLocation, span: _span), animated: true); }}

Page 46: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

執行模擬器

Page 47: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

搜尋地點 &繪出導航線

Page 48: 再接再勵學 Swift 程式設計

地圖、導航之程式運用專案 ( 程式 ) 名稱組織 ( 創作者 ) 名稱組織識別 ( 網域 )專案 ( 程式 ) 包識別唯一、上架用

程式語言Objective-C 或

Swift

應用的設備手機、平板、通用

暫不勾選

Page 49: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

拉入 SeachBar, Label, MapView元件

Page 50: 再接再勵學 Swift 程式設計

地圖、導航之程式運用填入物件宣告,並建立連結

SearchBar, Map, 地點位置代理

Page 51: 再接再勵學 Swift 程式設計

地圖、導航之程式運用SearchBar 將地點轉成地圖位址

繪製地圖

導航線屬性

Page 52: 再接再勵學 Swift 程式設計

地圖、導航之程式運用繪製導航線

Page 53: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

計算距離和時間

Page 54: 再接再勵學 Swift 程式設計

地圖、導航之程式運用import UIKitimport MapKit class ViewController: UIViewController, UISearchBarDelegate, MKMapViewDelegate, CLLocationManagerDelegate { @IBOutlet weak var ssearchbar: UISearchBar! @IBOutlet weak var mapview: MKMapView! @IBOutlet weak var distanceLabel: UILabel! @IBOutlet weak var timeLabel: UILabel! var locationManager: CLLocationManager! // 位置權限、自動更新定位開啟 / 關閉 ... var dest: CLLocationCoordinate2D? // 目前導航目標 var drawing: Bool = false //避免多個繪圖動作同時運行 var overlay: MKPolyline? // 目前導航路線所在的 Overlay //var handler: (([CLPlacemark]?, NSError) -> Void)? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib.

Page 55: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 locationManager = CLLocationManager() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest // 精確度 //or locationManager.requestWhenInUseAuthorization() locationManager.requestAlwaysAuthorization() // 要求抓取位置的權限 locationManager.startUpdatingLocation() // 開始取得定位 //locationManager.distanceFilter = 10 // 設定 mapview 和 searchbar ssearchbar.delegate = self mapview.delegate = self mapview.showsUserLocation = true //顯示自己的位置 (藍色點點 ) }  override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }

Page 56: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 func searchBarSearchButtonClicked(searchBar: UISearchBar) { CLGeocoder().geocodeAddressString(searchBar.text!) { (placemarks, error) in if let coordinate = placemarks?.first?.location?.coordinate { self.dest = coordinate searchBar.resignFirstResponder() //隱藏鍵盤 self.drawRoute() } }  } func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) { print(userLocation.coordinate) // 設置地圖中心位置 mapview.setCenterCoordinate(userLocation.coordinate, animated: true) // 可視範圍 (單位 :公尺 ) let viewRegion = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 500, 500) mapview.setRegion(viewRegion, animated: true) drawRoute() }

Page 57: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer { let render = MKPolylineRenderer(polyline: self.overlay!) render.strokeColor = UIColor (red: 0.9861, green: 0.2939, blue:0.1098, alpha: 1.0) render.lineWidth = 3 return render }  func drawRoute() { if (drawing) { return //已經在畫了等等再來 >.= } guard let dest = self.dest else { return //還沒設定目的地 ...滾 !! } drawing = true // 開始畫了

Page 58: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 let req = MKDirectionsRequest() req.transportType = .Automobile // 設定交通類型 //從哪裡出發 req.source = MKMapItem(placemark: MKPlacemark(coordinate: mapview.userLocation.coordinate, addressDictionary: nil)) // 要去哪裡 req.destination = MKMapItem(placemark: MKPlacemark(coordinate: dest, addressDictionary: nil)) let directions = MKDirections(request: req) // 計算路徑中 ... directions.calculateDirectionsWithCompletionHandler { (res, error) in if let route = res?.routes.first { //如果 overlay 已經存在要先移除 if let ol = self.overlay { self.mapview.removeOverlay(ol) } // 儲存新的 overlay self.overlay = route.polyline self.mapview.addOverlay(route.polyline)

Page 59: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 //更新文字部分 self.distanceLabel.text = "估計距離: \(route.distance/1000)km" //self.timeLabel.text = "估計時間: \(route.expectedTravelTime/3600)hr" self.timeLabel.text = "估計時間: \(route.expectedTravelTime/60)min" } self.drawing = false //畫完了 } }}

Page 60: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

勾選 User Location ,在地圖顯示所在位置

Page 61: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

GPS 權限開放需求

Page 62: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

執行模擬器

Page 63: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

組合 GPS 資訊到導航地圖

Page 64: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

調整 MapView

放入 6 個L日月水中

Page 65: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

填入物件宣告,並建立連結

Page 66: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

讀取 GPS 資料

Page 67: 再接再勵學 Swift 程式設計

地圖、導航之程式運用import UIKitimport MapKit class ViewController: UIViewController, UISearchBarDelegate, MKMapViewDelegate, CLLocationManagerDelegate { @IBOutlet weak var ssearchbar: UISearchBar! @IBOutlet weak var mapview: MKMapView! @IBOutlet weak var distanceLabel: UILabel! @IBOutlet weak var timeLabel: UILabel! @IBOutlet weak var lblLat: UILabel! @IBOutlet weak var lblLon: UILabel! @IBOutlet weak var lblHorizontal: UILabel! @IBOutlet weak var lblAltitude: UILabel! @IBOutlet weak var lblVertical: UILabel! @IBOutlet weak var lblDistance: UILabel! var locationManager: CLLocationManager! // 位置權限、自動更新定位開啟 / 關閉 ... var dest: CLLocationCoordinate2D? // 目前導航目標 var drawing: Bool = false //避免多個繪圖動作同時運行 var overlay: MKPolyline? // 目前導航路線所在的 Overlay

Page 68: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib.

locationManager = CLLocationManager() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest // 精確度 //or locationManager.requestWhenInUseAuthorization() locationManager.requestAlwaysAuthorization() // 要求抓取位置的權限 locationManager.startUpdatingLocation() // 開始取得定位 //locationManager.distanceFilter = 10 // 設定 mapview 和 searchbar ssearchbar.delegate = self mapview.delegate = self mapview.showsUserLocation = true //顯示自己的位置 (藍色點點 ) }

Page 69: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }

func searchBarSearchButtonClicked(searchBar: UISearchBar) { CLGeocoder().geocodeAddressString(searchBar.text!) { (placemarks, error) in if let coordinate = placemarks?.first?.location?.coordinate { self.dest = coordinate searchBar.resignFirstResponder() //隱藏鍵盤 self.drawRoute() } }  }

Page 70: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 func mapView(mapView: MKMapView, didUpdateUserLocation userLocation: MKUserLocation) { print(userLocation.coordinate) // 設置地圖中心位置 mapview.setCenterCoordinate(userLocation.coordinate, animated: true) // 可視範圍 (單位 :公尺 ) let viewRegion = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 500, 500) mapview.setRegion(viewRegion, animated: true) drawRoute() }

func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer { let render = MKPolylineRenderer(polyline: self.overlay!) render.strokeColor = UIColor (red: 0.9861, green: 0.2939, blue:0.1098, alpha: 1.0) render.lineWidth = 3 return render }

Page 71: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 func drawRoute() { if (drawing) { return //已經在畫了等等再來 >.= } guard let dest = self.dest else { return //還沒設定目的地 ...滾 !! } drawing = true // 開始畫了 let req = MKDirectionsRequest() req.transportType = .Automobile // 設定交通類型 //從哪裡出發 req.source = MKMapItem(placemark: MKPlacemark(coordinate: mapview.userLocation.coordinate, addressDictionary: nil)) // 要去哪裡 req.destination = MKMapItem(placemark: MKPlacemark(coordinate: dest, addressDictionary: nil)) let directions = MKDirections(request: req)

Page 72: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 // 計算路徑中 ... directions.calculateDirectionsWithCompletionHandler { (res, error) in if let route = res?.routes.first { //如果 overlay 已經存在要先移除 if let ol = self.overlay { self.mapview.removeOverlay(ol) } // 儲存新的 overlay self.overlay = route.polyline self.mapview.addOverlay(route.polyline)

//更新文字部分 self.distanceLabel.text = "估計距離: \(route.distance/1000)km" //self.timeLabel.text = "估計時間: \(route.expectedTravelTime/3600)hr" self.timeLabel.text = "估計時間: \(route.expectedTravelTime/60)min" } self.drawing = false //畫完了 } }

Page 73: 再接再勵學 Swift 程式設計

地圖、導航之程式運用 func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { // 定位資訊 let latestLocation: AnyObject = locations[locations.count - 1] lblLat.text = " 緯度: " + String(format: "%.4f", latestLocation.coordinate.latitude) // 緯度 lblLon.text = " 經度: " + String(format: "%.4f", latestLocation.coordinate.longitude) // 經度 lblHorizontal.text = " 水平精度: " + String(format: "%.4f", latestLocation.horizontalAccuracy) // 水平精度 lblAltitude.text = " 海拔高度: " + String(format: "%.4f", latestLocation.altitude) // 海拔高度 lblVertical.text = " 垂直精度: " + String(format: "%.4f", latestLocation.verticalAccuracy) // 垂直精度 lblDistance.text = self.distanceLabel.text // 距離 公尺 } func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { }}

Page 74: 再接再勵學 Swift 程式設計

地圖、導航之程式運用

執行模擬器

Page 75: 再接再勵學 Swift 程式設計

地圖、導航之程式運用結論: 1. 地圖套件引入

2. 元件 ( 物件 ) 、變數 (常數 )必先宣告3. 元件 ( 物件 ) 、變數 (常數 )命名規則 駝峰式

6. 學習階段,務必一字一字『抄』,切勿『複製貼上』7. 大膽嘗試,好奇無罪8. 不怕失敗,學習除錯9. 勇於分享

4. 權限設定5. 地圖設定

Page 76: 再接再勵學 Swift 程式設計

再接再勵學 Swift 程式設計

Page 77: 再接再勵學 Swift 程式設計

第四、五次聚會學習課程Android App 入門第一步iOS Swift 接力使力之玩 Open Data

學習不能中斷,卡關不要氣餒,讓我們的熱血繼續揮撒在程式的樂趣吧 !!帶著你的筆電,和我們一起享受 Coding Fun註:我們學習的是多系統,所以筆電最好是 Macbook哦 !日期: 8/10(星期三 ) 18:30 ~ 21:30 Android App 入門第一步 8/17(星期三 ) 18:30 ~ 21:30 iOS Swift 接力使力之玩 Open Data地點:高雄市前鎮區一心二路 157 號 10樓之 4(微盛科技)捷運三多商圈站 4 號出口,步行約 10分鐘歡迎踴躍報名,也歡迎高手協助指導費用: 0元 (珍惜學習資源 )

Page 78: 再接再勵學 Swift 程式設計

地圖、導航之程式運用駝峰式命名法在命名常數、變數、函式、類別或其他自定義型別時,通常習慣使用駝峰式命名法。這種命名方式是一種習慣,沒有絕對與強制,為的是增加識別與可讀性。當自定義名稱是由二個或多個單字連結在一起,而構成的唯一識別字時,單字之間不以空格、連結號 (-) 或底線(_)隔開,有兩種格式:小駝峰式命名法 (lower camel case)

第一個單字以小寫字母開始,第二個及之後的單字的首字母則使用大寫,像是: firstName 、 somePerson 。程式 (Coding) 中通常命名物件、常數、變數、函式、屬性、方法及下標時,會使用小駝峰式命名法。大駝峰式命名法 (upper camel case)

每個單字的首字母都使用大寫字母,像是 LastName 、 SomeClass 。程式 (Coding) 中通常命名專案、列舉、結構、類別、擴展、協定及其他自定義型別時,會使用大駝峰式命名法。