>

2015年9月24日木曜日

xCode7.0にしたらAVAudioPlayerの初期化処理で"Call can throw, but errors cannot be thrown out of a property initializer"というエラーが出るようになった件

エラー伝搬を無効にして良いなら下記のようにtryの後に!をつけることでエラーを回避できる。
let myPlayer:AVAudioPlayer = try! AVAudioPlayer(contentsOfURL: url)

xCode7.0にしたらNSUserDefaults.registerDefaultsで'NSMutableDictionary' is not convertible to '[String: AnyObject]'と言われるようになった件

NSUserDefaults.registerDefaultsで引数にNSMutableDictionaryのインスタンスを[String : AnyObject]にキャストして渡していたコードがXCode7.0にアップデートしたらエラーになった件。

原因は多分NSMutableDictionaryの[String : AnyObject]へのキャストが認められなくなったからと思われるので次のようにNSMutableDictionaryを使用せずに指定することで回避。
        
myNSUserDefaultsObj.registerDefaults(
            [
                "key1" : myObj1,
                "key2" : myObj2
            ]
        )