Xcode 6.3.2 Swift 1.2 NSIndexpath 没有成员 'row'
Xcode 6.3.2 Swift 1.2 NSIndexpath does not have member 'row'
我有一个 class 用于封装数据处理 - 类似于 NSFetchedResultsController,但根据应用程序的需要定制。我正在将此 class 转换为 Swift(双重尝试是为了说明,而不是实际实施)。
@objc class DataHandler: NSObject {
final func deleteEntryAt(indexPath: NSIndexPath) {
let entry = entries[indexPath.row]
let iRow = indexPath.row
if let row = indexPath.row {
}
}
}
以及 Objective-C 版本,其功能符合预期:
- (void)deleteEntryAtIndexPath:(NSIndexPath*)indexPath {
Entry *entry = self.entries[indexPath.row];
}
查看 NSIndexPath header 和文档,Swift 和 Objective-C 显示没有 属性 或名为 'row' 的函数;所以,我很茫然。
注意:我已经尝试了可选和 non-optional 变体。
示例代码中传递的 NSIndexPath 是 non-optional,这就是为什么我认为此问题与以下问题不同:
- NSIndexPath? does not have a member name 'row' error in Swift
- NSIndexPath does not have a member named row in swift
该方法此时也没有任何外部知识,因此问题与此类似:
至少我不这么认为。如果这是重复的,这就是生活,我深表歉意。
更新:
清理和构建 - 没有变化。
您需要导入 UIKit
.
section
、row
和 item
是 UIKit 添加的 NSIndexPath
的属性。
我有一个 class 用于封装数据处理 - 类似于 NSFetchedResultsController,但根据应用程序的需要定制。我正在将此 class 转换为 Swift(双重尝试是为了说明,而不是实际实施)。
@objc class DataHandler: NSObject {
final func deleteEntryAt(indexPath: NSIndexPath) {
let entry = entries[indexPath.row]
let iRow = indexPath.row
if let row = indexPath.row {
}
}
}
以及 Objective-C 版本,其功能符合预期:
- (void)deleteEntryAtIndexPath:(NSIndexPath*)indexPath {
Entry *entry = self.entries[indexPath.row];
}
查看 NSIndexPath header 和文档,Swift 和 Objective-C 显示没有 属性 或名为 'row' 的函数;所以,我很茫然。
注意:我已经尝试了可选和 non-optional 变体。
示例代码中传递的 NSIndexPath 是 non-optional,这就是为什么我认为此问题与以下问题不同:
- NSIndexPath? does not have a member name 'row' error in Swift
- NSIndexPath does not have a member named row in swift
该方法此时也没有任何外部知识,因此问题与此类似:
至少我不这么认为。如果这是重复的,这就是生活,我深表歉意。
更新:
清理和构建 - 没有变化。
您需要导入 UIKit
.
section
、row
和 item
是 UIKit 添加的 NSIndexPath
的属性。