2016-10-01 11 views
7

私たちはCocoaPods設定pod 'SwiftyJSON', '3.1.0'でSwiftyJSON Swift 3にアップグレードしています。SwiftyJSON&Swift 3: 'Int32?'型のリターン式を変換できません。タイプ> 'Int?'を返す

私たちは、このエラーを取得しています

/Users/xxx/Documents/iOS/xxx/Pods/SwiftyJSON/Source/SwiftyJSON.swift:866:33: Cannot convert return expression of type 'Int32?' to return type 'Int?'

エラーがSwiftyJSON.swiftでreturn文である:

public var int: Int? { 
    get { 
     return self.number?.int32Value 
    } 
    set { 
     if let newValue = newValue { 
      self.object = NSNumber(value: newValue) 
     } else { 
      self.object = NSNull() 
     } 
    } 
} 

誰もが問題が何であるかを知っていますか?これはCocoaPodsの設定やSwiftyJSONの問題ですか?

答えて

4

実現したSwiftyJSONのsupported versionは3.0.0であり、3.1.0ではありません。 3.0.0を使用し、問題は解決しました。

pod 'SwiftyJSON', '3.0.0'

+1

私は試みたが、働いていません。 – Mehul

+1

pod updateコマンドを実行して完了させましたか?そして完全にきれいにしてビルドしますか? –

8

私はただ、下記のコードで1行のコードを交換してください。シンプル

public var int: Int? { 
     get { 
      return self.number?.intValue 
     } 
     set { 
      if let newValue = newValue { 
       self.object = NSNumber(value: newValue) 
      } else { 
       self.object = NSNull() 
      } 
     } 
    } 
+0

有効ですが、私たちの目的はクライアントライブラリのソースを変更することではありません。 –

+0

はい。仰るとおりです。私たちはそれを変更すべきではありません。しかし、一時的な解決策でerroを削除したい場合は、上記のコードを使用することができます。将来的にはそれを明確に取り除きます。 – Mehul

0

単に

Bad : return self.number?.int32Value

Good : return self.number?.intValue

Reason : Seems to be more generic in how it can return integers.

0

、これを試してみてください、私は手動でこれが再び作業を取得するas? Intを追加しました:

public var int: Int? { 
    get { 
     return self.number?.int32Value as? Int 
    } 
    set { 
     if let newValue = newValue { 
      self.object = NSNumber(value: newValue) 
     } else { 
      self.object = NSNull() 
     } 
    } 
} 
関連する問題