Tôi muốn thêm một chức năng lớp thành phần mở rộng:Swift: Làm thế nào để thêm một phương pháp học trong 'String 'mở rộng
extension String {
class func test() {
}
}
tôi nhận được lỗi: Class methods are only allowed within classes; use 'static' to declare a static method
Hoặc làm thế nào tôi nên gọi là' String.test()
"
Nhưng đối với NSString
extension NSString {
class func aaa() {
}
}
không có lỗi.
Nếu tôi thêm tĩnh keyword:
extension String {
static func aaa() {
self.stringByAppendingString("Hello")
}
}
Got: Expression resolves to an unused function
,
Vì vậy, làm thế nào tôi nên thêm một chức năng lớp cũng muốn sử dụng phương pháp self.
.
EDIT: Công trình này!
extension String {
static func aaa (path:String) -> String {
return path.stringByAppendingString("Hello")
}
}
nhưng về @ lan của câu trả lời:
mutating func bbb(path: String) {
self += "world"
}
Khi tôi gõ nó xuất hiện như thế này:
String.bbb(&<#String#>)
String.bbb(&"nihao")
Cannot invoke 'bbb' with an argument list of type '(String)'
Tôi nên gọi "String.add()" như thế nào? –
Trên một thể hiện của một String, không phải trên chính lớp đó. Nó làm cho hoàn toàn không có ý nghĩa gọi điện thoại thêm vào loại String vì không có giá trị để nối thêm vào – Ian
hey @lan, bạn có thể kiểm tra câu hỏi của tôi edied một lần nữa? –