2017-04-22 51 views
0

我的应用程序崩溃与NSInvalidArgumentException:由于未捕获的异常 'NSInvalidArgumentException' 的,原因外部名称

终止应用程序:“ - [TtGC5Joker10PickerViewSS 选择:]:无法识别的选择发送到实例0x7972a390'

我试图为参数中使用外部名称

cell.pickerView.select(byKey: self.model.assignee.value) 

/* ... */ 

public func select(byKey key: T) { 
} 
当我从定义中删除外部名称,并呼吁

public func select(_ key: T) { 
} 

/*...*/ 

cell.pickerView.select(self.model.assignee.value) 

我做错了什么

一切正常?

回答

1

听起来好像这是由于命名空间冲突。

请检查您的JokerPickerView或其任何超类是否具有签名select(:)的功能,如果是这样,我会建议以不同的方式命名您的功能。

因为它是你的功能似乎根据斯威夫特标准命名不佳。一个更好的名字函数的一个例子是:

selectOption(with key: T)

如果所选择的东西是“选项”。即使只是把你的企图函数名,那么这是一种更好的方式将是:

select(by key: T)

然而,由于潜在的争食,我会避免调用一个函数select