2015-11-22 3 views
1

Я только что написал эту функцию под названием compute, которая берет строку и преобразует ее в значение soundex. Когда я вызываю функцию, она дает мне ошибку, которая говорит Cannot convert value of type 'String' to expected argument type 'Soundex'. Я не уверен, что здесь происходит, но я думаю, что это связано с тем, что я не декларирую функцию правильно в классе Soundex.Невозможно преобразовать значение типа string в ожидаемый тип аргумента soundex

Soundex.swift

import Cocoa 

class Soundex { 

    func compute(word: String) -> String { 
     return _compute(word, length: 4) 
    } 

    func _compute(word: String, length: Int) -> String { 
     ... 
    } 
} 

ViewController.swift

var lastName: String = lastNameText.stringValue 
lastName = Soundex.compute(lastName) //get error on this line 

Любая помощь будет удивительным, спасибо!

ответ

5

С помощью метода Soundex.compute(lastName) вы вызываете метод класса. Но compute(_:) не метод класса. Измените метод на это:

class func compute(word: String) -> String { 
    ... 
} 
+0

Я изменил его на 'class func compute', но теперь я получаю ошибку' Extra argument 'length' in call'. Я добавил остальную часть функции в свой оригинальный пост. – dragonbanshee

+0

Вы можете вызвать методы класса только из методов класса. – dasdom

Смежные вопросы

 Смежные вопросы