voglio aggiungere una funzione di classe in estensione:Swift: Come aggiungere un metodo di classe in 'String 'estensione
extension String {
class func test() {
}
}
ottengo l'errore: Class methods are only allowed within classes; use 'static' to declare a static method
O come devo chiamare' String.test()
"
Ma per NSString
extension NSString {
class func aaa() {
}
}
nessun errore.
se aggiungo statica parola chiave:
extension String {
static func aaa() {
self.stringByAppendingString("Hello")
}
}
Got: Expression resolves to an unused function
,
Così come dovrei aggiungere una funzione di classe vogliono anche usare self.
metodo.
MODIFICA: Questo funziona!
extension String {
static func aaa (path:String) -> String {
return path.stringByAppendingString("Hello")
}
}
ma circa @ risposta di lan:
mutating func bbb(path: String) {
self += "world"
}
quando si digita appare come questa:
String.bbb(&<#String#>)
String.bbb(&"nihao")
Cannot invoke 'bbb' with an argument list of type '(String)'
come dovrei chiamare "String.add()"? –
Su un'istanza di una stringa, non sulla classe stessa. Non ha assolutamente senso chiamare add sul tipo String perché non c'è alcun valore da aggiungere a – Ian
hey @lan, puoi controllare di nuovo la mia domanda? –