在Swift中使用nicklockwood的CountryPicker时无法识别的选择器

时间:2015-02-18 22:03:02

标签: ios objective-c swift

我知道他们说没有这样一个愚蠢的问题,但我觉得很愚蠢,因为我知道这个问题之前已被问了好几次,但我似乎无法找到适合我案例的解决方案之一(我已经努力寻找)。

所以我面临的问题是我正在创建一个Swift iOS项目,并且我正在寻找一个国家选择器。据我所知,这一系列国家没有原生解决方案,所以我遇到了'NickLockWood'(https://github.com/nicklockwood/CountryPicker)看起来很好的自定义解决方案

问题是我在尝试让它在我的Swift项目中工作时遇到了一些麻烦,因为提供的所有示例和演示代码都在obj-c中(我正在更好地转换这样的代码)从一种语言到另一种语言的代码,但我似乎还没有达到ninja级别。)。

据我所知,这就是他在viewController中使用它的方式

- (void)countryPicker:(__unused CountryPicker *)picker didSelectCountryWithName:(NSString *)name code:(NSString *)code
{
self.nameLabel.text = name;
self.codeLabel.text = code;
}

我已经设法尝试将其转换为我的Swift viewController ..

func countryPicker(picker: CountryPicker?, didSelectCountryWithName name: String!, code: String!) {
    println("\(name)")
    println("\(code)")
}

因此,当应用程序启动时,listPicker将填充国家/地区名称和相关标志。所以我很好地感觉它大部分正确地连接起来。 当我旋转拾取器并且它落在选择上时发生错误。然后我得到了这个......

exception 'NSInvalidArgumentException', reason: '-[UIViewController countryPicker:didSelectCountryWithName:code:]: unrecognized selector sent to instance 0x17dca740'

在与此选择器关联的ViewController中,我使用故事板将“CountryPicker”委托链接到ViewController。 然后在ViewController中这是我的代码..

import UIKit

class RegionViewController: UIViewController, CountryPickerDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
}

func countryPicker(picker: CountryPicker!, didSelectCountryWithName name: String!, code: String!) {
    println("\(name)")
    println("\(code)")
}

我可能在这里错过了其他的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我的错误。

我没有关联我在故事板中工作的viewController来使用我试图触及的自定义RegionViewController。

修正了连接,所有这一切都是正确的。

谢谢!