gpt4 book ai didi

swift - 在快速消除 View 后提供成功操作的通知

转载 作者:行者123 更新时间:2023-11-30 10:08:57 24 4
gpt4 key购买 nike

到目前为止,我已经能够使用 API 加载数据,如下所示:

let api = APIController(delegate: self) 
api.request("get_student_list")

func didRecieveAPIResults(originalRequest: String,apiResponse: APIResponse) {
// do stuff with API response here
}

这对于用户打开 View 、加载数据然后刷新 View 的情况非常有用。 (例如加载学生列表)

我现在想创建这样的东西:

在学生 ListView 中单击学生 > 成绩列表打开 > 在成绩 ListView 中单击成绩 > 成绩列表被驳回 > 发出成功/失败通知

最好将委托(delegate)设置为学生 View ,以便当我关闭成绩 View 时,学生 View 收到 didRecieveAPIResults 信号,或者是否有更好的方法来处理此问题?

如果这是相关的,那么采用一种通用的方式在整个应用程序中显示成功通知可能是有意义的 - 例如屏幕底部的蓝色框会短暂显示然后隐藏。不过我还不太确定如何做到这一点。

非常感谢!

最佳答案

如果您想要一个可以发送到任何对象的通知,那么您需要查看 NSNotificationCenter.defaultCenter() 特别是 addObserver 对于监听器对象和 postNotificationName 发送通知时。如果这只是一个简单的成功失败请求,我只需让 api.request 调用返回一个 Bool 值,然后使用您的 api 的编码器将执行以下操作:

let success = api.request....
if(!success)
{
//Houston we have a problem
}

您还可以通过将其设置为 Int 值来更详细地说明它,它返回错误代码而不仅仅是 bool 值

如何使用通知

...API 请求结束

let userInfo = ["originalRequest":originalRequest,"response": apiResponse];
NSNotificationCenter.defaultCenter().postNotificationName("API_SUCCESS",object:nil,userInfo:userInfo);

然后在任何类中都需要知道通知

init....
{
NSNotificationCenter.defaultCenter().addObserver(self, selector: "APISuccess:", name: "API_SUCCESS", object: nil);
}
func APISuccess(notification:NSNotification)
{
if let userInfo = notification.userInfo
{
didRecieveAPIResults(originalRequest: userInfo["originalRequest"] as! String ,apiResponse: userInfo["response"] as! APIResponse)
}
}

关于swift - 在快速消除 View 后提供成功操作的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34276130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com