更新完OS X之後用Facetime打電話會出現『Your iphone must use the same icloud and facetime account』錯誤訊息
請先將手機與電腦的Facetime登出,並重新登入就可以繼續用電腦撥電話啦 :)
2015/04/16
2015/02/13
Swfit IOS add marker on the Google Maps
Code:
執行結果:
// // ViewController.swift // Sample // // Created by C.Y.Fang on 2/10/15. // Copyright (c) 2015 C.Y.Fang. All rights reserved. // import UIKit class ViewController: UIViewController { let url = "http://data.kaohsiung.gov.tw/Opendata/DownLoad.aspx?Type=2&CaseNo1=AU&CaseNo2=1&FileType=2&Lang=C&FolderType=O" override func viewDidLoad() { super.viewDidLoad() var camera = GMSCameraPosition.cameraWithLatitude(22.60583276, longitude: 120.307702, zoom: 10) var mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera) self.view = mapView let json:AnyObject! = getJsonFromURL(url) drawMaker(mapView, json: json) } private func getJsonFromURL(url:String)->AnyObject?{ let url = NSURL(string: url) let data = NSData(contentsOfURL: url!) return NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments, error: nil) } private func drawMaker(mapView:GMSMapView, json:AnyObject?){ if let array = json as? NSArray { for temp in array{ let name = temp["車站中文名稱"] as NSString! let lat = (temp["車站緯度"] as NSString!).doubleValue let lng = (temp["車站經度"] as NSString!).doubleValue var market = GMSMarker() market.position = CLLocationCoordinate2DMake(lat ,lng) market.title = name market.map = mapView } } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }
執行結果:
2015/02/12
Swift IOS Read JSON from url
JSON資料使用高雄市公車路線資料
先將url透過NSURL建構子建立該常數,再將NSURL給予NSData建構子,回傳資料為NSData
並將其JSON依照高雄市公車路線資料的格式輸出
先將url透過NSURL建構子建立該常數,再將NSURL給予NSData建構子,回傳資料為NSData
let data = getDataFromUrl(url)!
func getDataFromUrl(url:String) -> NSData? { let url = NSURL(string: url) if(url == ""){ return nil } return NSData(contentsOfURL: url!) }
再透過NSJSONSerialization.JSONObjectWithData方法將Data轉成AnyObject
並將其JSON依照高雄市公車路線資料的格式輸出
func printJson(object:AnyObject){ if let array = object as? NSArray{ for temp in array{ var id:AnyObject! = temp["ID"] var departure:AnyObject! = temp["departureZh"] var destination:AnyObject! = temp["destinationZh"] println("車牌號碼\(id) 起點\(departure) 目的\(destination)") } } }
Swift IOS Read project file
Project內有一個檔案『test.txt』,裡面文字檔如下圖
讀取檔案內的文字,可透過NSString建構子將文字讀出
首先先透過下面這個方法取得Bundle內指定的檔案
判斷該String是否為nil,如果是就回傳空字串
如果不是就傳回檔案中的文字,並以UTF8去編碼
讀取檔案內的文字,可透過NSString建構子將文字讀出
首先先透過下面這個方法取得Bundle內指定的檔案
NSBundle.mainBundle().pathForResource
判斷該String是否為nil,如果是就回傳空字串
if(file == nil){ return "" }
如果不是就傳回檔案中的文字,並以UTF8去編碼
return NSString(contentsOfFile: file!, encoding: NSUTF8StringEncoding, error: nil)
Swift IOS write a file
Code:
// // ViewController.swift // Sample // // Created by C.Y.Fang on 2/12/15. // Copyright (c) 2015 C.Y.Fang. All rights reserved. // import UIKit class ViewController: UIViewController { let fileName = "test.cy" override func viewDidLoad() { super.viewDidLoad() let directory = NSSearchPathForDirectoriesInDomains( .AllLibrariesDirectory, .UserDomainMask , true)[0] as String let path = "\(directory)/\(fileName)" NSData().writeToFile(path, atomically: true) if(NSFileManager.defaultManager().fileExistsAtPath(path)){ println("yes") }else{ println("no") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
執行結果:
2015/02/10
Swift 使用Google Maps SDK for IOS撰寫iPhone App
先下載Google Maps SDK for IOS並解壓縮,下載同時建立專案,並到Google Play Developer Console將Google Maps SDK for iOS功能開啟,建立一組IOS Key
Google Maps SDK for IOS解壓縮後會看到GoogleMaps-iOS-1.9.1資料夾,將『GoogleMaps.framework』和Resources資料夾內的『GoogleMaps.bundle』複製到專案的『Frameworks』資料夾(沒有Frameworks資料夾須自行建立)
『GoogleMaps.framework』複製到專案時,須將Copy Items if needed打勾,並選擇Create folder references
而『GoogleMaps.bundle』複製到專案時,不需將Copy Items if needed打勾,並選擇Create folder references
加入Objective-C Header,名稱隨意打,程式碼為
Google Maps SDK for IOS解壓縮後會看到GoogleMaps-iOS-1.9.1資料夾,將『GoogleMaps.framework』和Resources資料夾內的『GoogleMaps.bundle』複製到專案的『Frameworks』資料夾(沒有Frameworks資料夾須自行建立)
『GoogleMaps.framework』複製到專案時,須將Copy Items if needed打勾,並選擇Create folder references
而『GoogleMaps.bundle』複製到專案時,不需將Copy Items if needed打勾,並選擇Create folder references
加入Objective-C Header,名稱隨意打,程式碼為
#import <GoogleMaps/GoogleMaps.h>
2015/02/04
Xcode 6.1.1 免簽證將App安裝到IOS 8.1.2實機
昨天看了許多免簽證的方法,每個方法十分的好,有得步驟寫得很簡潔有力
但詳細細節還是與現實有些出入,我就打算自己寫一篇比較歸納出來的心得,哪天找不到資源時,勉強可以用上
開始前,得先注意以下幾點
先至手機,開啟Cydia軟體做更新
接著按下編輯/加入來源『cydia.angelxwind.net』
但詳細細節還是與現實有些出入,我就打算自己寫一篇比較歸納出來的心得,哪天找不到資源時,勉強可以用上
開始前,得先注意以下幾點
- 手機JB過了?還沒就請參考『iPhone 5 IOS 8.1.2 使用太極v1.2.0一鍵JB』
- JB後有沒有Cydia軟體?沒有就去安裝吧
- 擁有一台白蘋果或黑蘋果的電腦了嗎?還沒就快去想辦法吧
- Xcode下載好了沒?還沒就快去App Store或Apple Developer下載
- 一顆興奮的心準備好了沒?還沒就吃顆興奮劑吧 :)
先至手機,開啟Cydia軟體做更新
接著按下編輯/加入來源『cydia.angelxwind.net』
iPhone 5 IOS 8.1.2 使用太極v1.2.0一鍵JB
目前的JB版本到了8.1.3無法被JB了,要JB的朋友需確認手上版本是否為8.1.2?
卻認為8.1.2那麼就恭喜你,不用花時間刷回8.1.2
不是的話恭喜你,要浪費一些時間在刷韌體上了
首先呢,先安裝好iTunes版本需為12.0.1,原因是太極JB v1.2.0需要iTunes為12.0.1,超過12.0.1會讓太極JB v1.2.0無法找到驅動
最新版本的朋友請將iTunes移除,並重新安裝12.0.1版本
iTunes版本有問題的朋友請參考『iTunes 安裝失敗』
下載好太極JB v1.2.0,將傳輸線插入電腦與iPhone上,並執行太極JB v1.2.0
太極JB v1.2.0會先去檢查環境,不過安裝前請先將『關閉密碼』以及關閉『尋找我的iPhone』功能
『關閉密碼』在設定/密碼鎖定/關閉密碼
『尋找我的iPhone』在設定/iCloud/尋找我的iPhone
卻認為8.1.2那麼就恭喜你,不用花時間刷回8.1.2
不是的話恭喜你,要浪費一些時間在刷韌體上了
首先呢,先安裝好iTunes版本需為12.0.1,原因是太極JB v1.2.0需要iTunes為12.0.1,超過12.0.1會讓太極JB v1.2.0無法找到驅動
最新版本的朋友請將iTunes移除,並重新安裝12.0.1版本
iTunes版本有問題的朋友請參考『iTunes 安裝失敗』
下載好太極JB v1.2.0,將傳輸線插入電腦與iPhone上,並執行太極JB v1.2.0
太極JB v1.2.0會先去檢查環境,不過安裝前請先將『關閉密碼』以及關閉『尋找我的iPhone』功能
『關閉密碼』在設定/密碼鎖定/關閉密碼
『尋找我的iPhone』在設定/iCloud/尋找我的iPhone
iPhone 5 IOS 8.1.3 降回 8.1.2
為了不繳年費又想將App在手機上執行,花了些許時間看了免認證的文章,先決條件手機得JB
但前幾天有發布8.1.3順手按下更新,更新完後才知道,才知道8.1.3版本是沒辦法JB
又得把8.1.3刷回8.1.2,好讓App能在手機上執行,先去找尋適合的IPSW
找到之後一樣開啟iTunes,並點選到iPhone圖示,按下Shift + 回復iPhone
選擇正確的韌體,按下開啟
等待片刻即可更新完成
參考資料:
IPSW
但前幾天有發布8.1.3順手按下更新,更新完後才知道,才知道8.1.3版本是沒辦法JB
又得把8.1.3刷回8.1.2,好讓App能在手機上執行,先去找尋適合的IPSW
找到之後一樣開啟iTunes,並點選到iPhone圖示,按下Shift + 回復iPhone
選擇正確的韌體,按下開啟
等待片刻即可更新完成
參考資料:
IPSW
iPhone 5 IOS 8.1.2 太極JB刷回原廠
訂閱:
文章 (Atom)