2015-09-23 168 views
0

我的swift 1.2代碼與ios 7.1至8.4兼容。然後,當Apple發佈IOS 9時,我將代碼遷移到swift 2,而我的應用程序現在支持iOS 8至9,但不會與iOS 7配合使用。Swift 2.0與iOS 7的兼容性

例如,try catch與iOS 7不兼容, Xcode將其標記爲錯誤。

var error: NSError? 
do { 
    try NSFileManager.defaultManager().createDirectoryAtPath(dataPath, withIntermediateDirectories: false, attributes: nil) 
} catch let error1 as NSError { 
    error = error1 
} 

而且我有UIAlertController問題,因爲xcode中給了我下面的標籤@available(iOS 8.0, *)

我怎麼能讓兼容這兩個問題與iOS7?

回答

0

對於UIAlertController,您可以使用下面的代碼,但是對於try catch,我的XCode上不顯示任何錯誤。

  if #available(iOS 8.0, *) { 
       let alertController = UIAlertController(title: "提示", message: hint+"不能爲空", preferredStyle: .Alert) 
       let OKAlert = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil) 
       alertController.addAction(OKAlert) 
       self.presentViewController(alertController, animated: true, completion: nil) 
      } else { 
       let alertController: UIAlertView = UIAlertView(title: "提示", message: "不能爲空", delegate: nil, cancelButtonTitle: "OK") 
       alertController.show() 
      } 

編輯:

只是想知道,你可以嘗試:

if #available(iOS 8.0, *) { 
do { 
    let str = try NSString(contentsOfFile: "Foo.bar", 
          encoding: NSUTF8StringEncoding) 
} 
catch let error as NSError { 
    print(error.localizedDescription) 
} 
}else{ 
#your code works on ios7 
} 
+0

你用什麼版本的Xcode模擬的iOS 7?我已經安裝了iOS 8-9和Xcode 6.4到iOS 7.1的Xcode 7,但這最後顯示了我很多錯誤。 – corocraft

+0

不,我不能安裝IOS7。你知道ios7是非常少量的用戶,也許你可以忽略它。或者嘗試我的編輯。 –