gpt4 book ai didi

iOS Delegate 返回 nil (Swift)

转载 作者:行者123 更新时间:2023-11-29 01:41:43 24 4
gpt4 key购买 nike

我感觉这段代码有不止一个问题,但我的第一个问题是我的委托(delegate)返回 nil,我不知道为什么。首先是我的委托(delegate):

import UIKit

//delegate to move information to next screen
protocol userEnteredDataDelegate {
func userDidEnterInformation(info:NSArray)
}

接下来,我为委托(delegate)定义了一个 var,我相信 ?使它成为一个可选变量?这是在类内部定义的

var dataPassDelegate:userEnteredDataDelegate? = nil

现在,在我的用户将信息输入到 View 中的字段后,我想将这些字段值添加到一个数组中,然后将该数组传递到下一个将要添加到的 View 中。我从一些 YouTube 示例中将这段代码拼凑在一起,但我认为我缺少一个需要的部分。我什么时候为 dataPassDelegate var 分配某种值,以便在 if 语句出现时它不是 nil?我什至需要那个 if 语句吗?

        if blankData != 1 {
//add code to pass data to next veiw controller
enteredDataArray = [enterDate.text, enterSeason.text, enterSport.text, enterDispTo.text]
//println(enteredDataArray)
self.appIsWorking ()
if (dataPassDelegate != nil) {
let information: NSArray = enteredDataArray
println(information)
dataPassDelegate!.userDidEnterInformation(information)
self.navigationController?.popViewControllerAnimated(true)
} else {
println ("dataPassDelegate = nil")
}

//performSegueWithIdentifier("goToDispenseScreenTwo", sender: self)
activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
}
blankData = 0
}

感谢您的帮助。

最佳答案

委托(delegate)是指向符合特定协议(protocol)的另一个对象的指针。通常,您使用委托(delegate)来改进类的行为,或发送回异步网络请求结果的状态信息

何时设置 dataPassDelegate 委托(delegate)由您决定。

具有dataPassDelegate 属性的对象是什么?什么对象将充当委托(delegate)?

您需要创建 2 个对象(将用作委托(delegate)的对象和具有 dataPassDelegate 属性的对象)并将它们链接起来。

我们无法告诉您何时执行此操作,因为我们不知道您要执行的操作或将在何处使用这些对象。

关于iOS Delegate 返回 nil (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32320959/

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