如何在Swift中创建界面

26

我希望在Swift中创建类似接口的功能,我的目标是当我调用另一个类时(例如,我正在调用API),该类的响应应反映在我的当前屏幕上。在Android中使用接口来实现,但是在Swift中我应该使用什么?有人可以给我一个例子吗?以下是Android代码...

public class ExecuteServerReq {
    public GetResponse getResponse = null;

    public void somemethod() {
        getResponse.onResponse(Response);
    } 
    public interface GetResponse {
        void onResponse(String objects);
    }
}


ExecuteServerReq executeServerReq = new ExecuteServerReq();

executeServerReq.getResponse = new ExecuteServerReq.GetResponse() {
    @Override
    public void onResponse(String objects) {
    }
}

在Swift中,协议作为接口。Google协议在Swift中也可以使用。 - Tushar Sharma
你可以创建协议来实现相同的功能。 - Prashant Tukadiya
@TusharSharma 能给我一个例子吗? - Jayprakash Singh
@MikeAlter 怎么样...有任何例子吗? - Jayprakash Singh
@Jaypraksh,关于这个问题,Stack上已经有无数的教程和解决方案,请自行搜索谷歌。 - Tushar Sharma
显示剩余2条评论
2个回答

39

Swift中没有接口,而是使用协议(Protocols)

协议定义了一组方法、属性和其他要求,以适应特定的任务或功能。然后,类、结构体或枚举可以采用该协议来提供这些要求的实际实现。满足协议要求的任何类型都被称为遵循该协议。

让我们来举个例子。

protocol Animal {
    func canSwim() -> Bool
}

而我们有一个类,确认这个协议的名称为Animal。

class Human : Animal {
   func canSwim() -> Bool {
     return true
   }
}

了解更多,请访问- https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html


5
你正在寻找“协议”。在Swift中,接口与协议相同。
protocol Shape {
    func shapeName() -> String
}

class Circle: Shape {
    func shapeName() -> String {
        return "circle"
    }
  
}

class Triangle: Shape {
    func shapeName() -> String {
        return "triangle"
    }
}

classstruct 都可以实现 protocol


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