4

Swift 1.2 (はい、私は悲しみの原因となっている Xcode 7 に切り替えていません) では、次のテーブル ビュー デリゲート メソッドがあります。

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.coreDataSource.numberOfRowsInSection(section)
}

これにより、Xcode 6.4 でエラーが発生します。

タイプ '(Int)' の引数リストで 'numberOfRowsInSection' を呼び出すことはできません

Objective-C からブリッジされた私の CoreDataSource メソッドには、次の .h 宣言があります。

- (NSUInteger) numberOfRowsInSection: (NSUInteger) section;

テーブル ビューのデリゲート メソッドで UInt 型強制を適用すると、次のようになります。

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.coreDataSource.numberOfRowsInSection(UInt(section))
}

Xcode でエラーが発生するようになりました。

「UInt」は「Int」に変換できません

だから、あなたがそうしなければダメだ、あなたがシナリオのようなものをしなければダメに見える.

Apple のドキュメントから、彼らは次のように述べています。

Swift は、NSUInteger と NSInteger を Int にブリッジします。

考え?

4

1 に答える 1

9

return ステートメント全体をInt(return Int(self.coreDataSource…)) でラップします。

于 2015-08-04T03:58:48.897 に答える