如何在Swift中从另一个类中调用另一个方法?

6
mainController = (ViewController *)self.presentingViewController;   
mainController.pressureUnit = _pressureSettings.selectedSegmentIndex;

我会用Objective C来实现这个,那么在Swift中该怎么做呢?

1个回答

18

otherClass().methodFromOtherClass() 是 Swift 的语法。

如果你必须传递一个带有外部名称的属性,可以使用以下方法:

otherClass().methodFromOtherClass(propertyName: stringName) // 传递字符串的示例

如果要调用返回方法结果的方法执行某些操作:

let returnValue = otherClass().methodFromOtherClass(propertyName: stringName)

访问属性或函数的示例

class CarFactory { 
   var name = ""
   var color = "" 
   var horsepower = 0 
   var automaticOption = false

   func description() { 
       println("My \(name) is \(color) and has \(horsepower) horsepowers") 
   }
} 

var myCar = CarFactory() 
myFirstCar.name = "Mustang"
myCar.color = "Red"
myCar.horsepower = 200 myCar.automaticOption = true
myFirstCar.description() // $: "My Mustang is Red and has 200 horsepowers and is Automatic"

摘自: Apple Inc. “The Swift Programming Language.” iBooks.

在这里你只调用了该方法,而不是类的新实例。

class SomeClass {
    class func someTypeMethod() {
        // type method implementation goes here
    }
}

SomeClass.someTypeMethod()

otherClass() 指的是什么?它是另一个类的实例吗?如果是,我该如何创建它?@SteveRosenberg - zbz.lvlv
刚刚给出了一个扩展示例。 - Steve Rosenberg
非常感谢,但现在我面临另一个问题。如果我执行类似 var myCar = CarFactory() 的操作,我将创建 CarFactory 的新实例。我需要的是引用该类的现有实例。如何做到这一点?@SteveRosenberg - zbz.lvlv
你可以用两种方式来实现:1)始终引用myCar,这样你就有了相同的实例。这允许你拥有单独的实例,如myCar2等。如果你想创建一个单例实例,你可以使用称为类函数的东西。我会很快更新答案。 - Steve Rosenberg
其实,如果您能将上面的 Obj C 代码翻译成 Swift,我会很高兴。谢谢! - zbz.lvlv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接