NSUInteger和NSInteger联系Swift

时间:2015-08-04 02:55:38

标签: objective-c swift xcode6 ios8.4

使用Swift 1.2(是的,我没有切换到Xcode 7,这让我感到悲伤),我有以下表格视图委托方法:

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

导致Xcode 6.4给出错误:

  

无法调用' numberOfRowsInSection'使用类型的参数列表   '(INT)'

我的CoreDataSource方法,从Objective-C桥接,具有以下.h声明:

- (NSUInteger) numberOfRowsInSection: (NSUInteger) section;

如果我在表格视图委托方法中应用UInt强制:

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

Xcode现在给出错误:

  

' UINT'不可转换为' Int'

所以,如果你这样做,它看起来很有名,如果你没有那种场景,它就会被淹没。

来自Apple's docs,他们说:

  

Swift将NSUInteger和NSInteger连接到Int。

思想?

1 个答案:

答案 0 :(得分:8)

将整个return语句换行Int(返回Int(self.coreDataSource…))。