我试图在Swift应用程序中使用Obj C编写的名为TSUIKit的库来设置多列表,该库定义了自己的表TSTableView。
我已经将这些文件添加到我的项目和桥接头中,xcode可以正确识别这些类。。。
每次我执行代码时,表都会正确显示行和列,但是当我触摸任何单元格时,都会出现一个错误,显示如下:
2014-11-05 09:39:54.811 probarTabla[1584:20072] -[TSTableView numberOfColumns]: unrecognized selector sent to instance 0x7ffbc3654920
2014-11-05 09:39:54.937 probarTabla[1584:20072] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TSTableView numberOfColumns]: unrecognized selector sent to instance 0x7ffbc3654920'
*** First throw call stack:
这是视图控制器中的代码,测试项目只有一个添加了TSTableView的唯一视图,该视图对应于view controller代码中的“tabla”
#import <Foundation/Foundation.h>
#import "TSTableView.h"
#import "TSTableViewDelegate.h"
#import "TSTableViewDataSource.h"
#import "TSTableViewHeaderSectionView.h"
#import "TSTableViewModel.h"
视图控制器代码:
import UIKit
class ViewController: UIViewController, TSTableViewDelegate {
@IBOutlet var tabla: TSTableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tabla.delegate = self
tabla.autoresizingMask = UIViewAutoresizing.FlexibleBottomMargin | UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
var pruebaColumna : NSArray = [
["title" : "Probando Columna 1"],
["title" : "Probando Columna 2"],
["title" : "Probando Columna 3"]
]
var model : TSTableViewModel = TSTableViewModel(tableView: tabla, andStyle: kTSTableViewStyleDark)
var pruebaFila : NSArray = [
["cells" : [
["value": "valor1"],
["value": "valor2"],
["value": "valor3"]
]
]
]
model.setColumns(pruebaColumna, andRows: pruebaFila)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: TSTableView!, didSelectRowAtPath rowPath: NSIndexPath!, selectedCell cellIndex: Int) {
println("Has hecho click en la celda")
}
}
提前谢谢
最佳答案
保持对模型的强烈引用是很重要的,因为这是数据源。
一旦你对它有很强的参考价值,你的问题就会得到解决。