为啥我的 iOS 应用程序中的变量或强制转换为空? [复制]
Posted
技术标签:
【中文标题】为啥我的 iOS 应用程序中的变量或强制转换为空? [复制]【英文标题】:Why are my variable or cast empty in my iOS app? [duplicate]为什么我的 iOS 应用程序中的变量或强制转换为空? [复制] 【发布时间】:2020-11-30 19:00:45 【问题描述】:我正在 Xcode 上为 ios 编写一个应用程序,我想将一个变量发送到另一个尚未出现的 ViewController。问题是,当我像这样为未来的 ViewController 创建一个变量时:
guard let EndConfiguration = self.storyboard?.instantiateViewController(withIdentifier: EndConfiguration) as? EndConfiguration else
fatalError("Impossible d'acceder correctement au cellules des alarmes")
我正在尝试这样做:
EndConfiguration.ModeleOutlet.text = Alarme.shared.Alarmes[indexPath.row].Modele
我收到此错误:
致命错误:在隐式展开时意外发现 nil 可选值
我理解 Optionels,但如果我添加“?”在 ModeleOutlet 之后它将删除错误,但文本在我的其他 ViewController 中保持不变。我确定我修改的值是满的,不用担心。
我正在复制我的问题,因为有人关闭了它,因为当根本没有解决方案时,已经有了解决方案。
提前谢谢你。
【问题讨论】:
【参考方案1】:try this
guard let EndConfiguration = self.storyboard?.instantiateViewController(withIdentifier: EndConfiguration) as? EndConfiguration else
fatalError("Impossible d'acceder correctement au cellules des alarmes")
_ = EndConfiguration.view
EndConfiguration.ModeleOutlet.text = Alarme.shared.Alarmes[indexPath.row].Modele
【讨论】:
感谢您的回复,事实上,添加命令行的事实并没有给我关于可选选项的更多错误。但不幸的是,我仍然无法修改我的变量或我的 Outlet。如果我打印我的变量“EndConfiguration”,我会得到:“”,这很好吗?谢谢【参考方案2】:我假设ModeleOutlet
的类型是Label
或可能包含文本变量的其他类型。
如果 ModeleOutlet 确实是通过故事板附加的标签,那么我敦促您阅读 ViewController 生命周期。这是一篇很棒的文章描述它:https://medium.com/good-morning-swift/ios-view-controller-life-cycle-2a0f02e74ff5
现在,为了具体回答您的问题,您可能希望在视图控制器中创建一个单独的变量,然后在函数中设置文本变量 viewDidLoad
。
class EndConfiguration: UIViewController
public var sharedText: String?
@IBOutlet var ModeleOutlet: UILabel?
func viewDidLoad()
super.viewDidLoad()
self.ModeleOutlet?.text = sharedText
【讨论】:
感谢您的回复,我阅读了您发给我的内容,非常感谢它启发了我。所以我在我的 EndConfiguration: ibb.co/6FRdh4K 中做到了这一点。在我的“第 1 步”中:ibb.co/nsSLJSx。但是还是不行,是不是我弄错了?感谢您的安心。 @LouisRaverdy 看来您可能需要将您的@IBOutlet
连接到情节提要本身。 https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ConnectTheUIToCode.html
是的,在我的 EndConfiguration 中已经有我的标签的@IBoulet 我需要添加另一个?
@LouisRaverdy 我看到ModeleOutlet
的@IBOutlet
已创建。您能否验证它是否已连接到情节提要?
检查后效果很好:ibb.co/7YNpFNt和ibb.co/5kSLM61以上是关于为啥我的 iOS 应用程序中的变量或强制转换为空? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如果从数组中复制最终变量,为啥 Java 需要对最终变量进行显式强制转换?
在 Objective-C 中,为啥在分配给指定类型的变量时需要强制转换?