Swift3.0 - 遇到的坑

weixin_34391445發表於2016-10-08

Swift3.0 - 真的很簡單
Swift3.0 - 資料型別
Swift3.0 - Array
Swift3.0 - 字典
Swift3.0 - 可選值
Swift3.0 - 集合
Swift3.0 - 流控制
Swift3.0 - 物件和類
Swift3.0 - 屬性
Swift3.0 - 函式和閉包
Swift3.0 - 初始化和釋放
Swift3.0 - 協議protocol
Swift3.0 - 類和結構體的區別
Swift3.0 - 列舉
Swift3.0 - 擴充套件
Swift3.0 - 下標
Swift3.0 - 泛型
Swift3.0 - 異常錯誤
Swift3.0 - 斷言
Swift3.0 - 自動引用計數(strong,weak,unowned)
Swift3.0 - 檢測API
Swift3.0 - 物件的標識
Swift3.0 - 註釋
Swift3.0 - 元型別
Swift3.0 - 空間命名
Swift3.0 - 物件判等
Swift3.0 - 探究Self的用途
Swift3.0 - 類簇
Swift3.0 - 動態呼叫物件(例項)方法
Swift3.0 - 文字輸出
Swift3.0 - 黑魔法swizzle
Swift3.0 - 映象
Swift3.0 - 映象
Swift3.0 - 遇到的坑

  • 在擴充套件中寫靜態方法

      extension UIButton{
          static var count:Int = 0
      }
    

報錯提示:

a declaration cannot be both 'final' and 'dynamic'

原因分析:

當前類是繼承於NSObject的,swift為了swift和Obj-C的相容為靜態變數生成一個動態訪問器,如果你的工程是隻支援swift的,你可以使用@nonobjc屬性避免這個問題

  • 麥克風許可權
    報錯:

app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.

解決:

在info 新增鍵值對 Privacy - Microphone Usage Description

1594482-cca3db706eafaf38.png
讓學習成為一種習慣
  • 照相許可權

解決 :

在info新增鍵值:NSCameraUsageDescription

1594482-77ca69ae5b33d12e.png
讓學習成為一種習慣
  • 給 UIViewController 的子類增加一個新的初始化方法
      init(deviceIP:String,port:UInt16){
        super.init(nibName: nil, bundle: nil)
     }

不是是下面這種

    init(deviceIP:String,port:UInt16){
        super.init()
     }

原因:

只能呼叫父類的指定初始化方法

  • 使用UDP 和android 進行通訊的時候,安卓廣播資料,iOS接受不到資料

將主機地址改為 224.0.0.1 就樂了!

  • NSCache 初始化時報錯,提示不能推斷
var cache = NSCache()

修改:

 var cache =  NSCache<AnyObject, AnyObject>()
  • clang: error: linker command failed with exit code 1 (use -v to see invocation)

可能導致錯誤因素

由於使用了第三方框架,可能有衝突的擴充套件方法名

解決辦法


1594482-943491b18782d68c.png
5EB64D2F-9685-437A-91F7-90017DC77689.png
  • iOS 10 之後許可權設定

麥克風許可權:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風?
相機許可權: Privacy - Camera Usage Description 是否允許此App使用你的相機?
相簿許可權: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫?
通訊錄許可權: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄?
藍芽許可權:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍芽?
語音轉文字許可權:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識別?
日曆許可權:Privacy - Calendars Usage Description
定位許可權:Privacy - Location When In Use Usage Description
定位許可權: Privacy - Location Always Usage Description
位置許可權:Privacy - Location Usage Description
媒體庫許可權:Privacy - Media Library Usage Description
健康分享許可權:Privacy - Health Share Usage Description
健康更新許可權:Privacy - Health Update Usage Description
運動使用許可權:Privacy - Motion Usage Description
音樂許可權:Privacy - Music Usage Description
提醒使用許可權:Privacy - Reminders Usage Description
Siri使用許可權:Privacy - Siri Usage Description
電視供應商使用許可權:Privacy - TV Provider Usage Description
視訊使用者賬號使用許可權:Privacy - Video Subscriber Account Usage Description

相關文章