gpt4 book ai didi

ios - Swift - 在将项目添加到数组时解包 Optional 值时意外发现 nil

转载 作者:可可西里 更新时间:2023-11-01 00:36:25 26 4
gpt4 key购买 nike

我有一个这样的数组:

var gestureArray: Array<UIGestureRecognizer>!

我正在尝试像这样向这个数组添加项目:

for gesture in webview.scrollView.gestureRecognizers!
{
gestureArray.insert(gesture, atIndex: 0)
}

print(gestureArray)

但在尝试添加第一项后出现此错误:

unexpectedly found nil while unwrapping an Optional value

当我打印每个手势时,它们看起来像这样:

<UIScrollViewDelayedTouchesBeganGestureRecognizer: 0x124eabb60; state = Possible; delaysTouchesBegan = YES; view = <_UIWebViewScrollView 0x125825400>; target= <(action=delayed:, target=<_UIWebViewScrollView 0x125825400>)>>

<UIScrollViewPanGestureRecognizer: 0x124eac370; state = Possible; delaysTouchesEnded = NO; view = <_UIWebViewScrollView 0x125825400>; target= <(action=handlePan:, target=<_UIWebViewScrollView 0x125825400>)>>

<UIScrollViewPinchGestureRecognizer: 0x124d892a0; state = Possible; delaysTouchesEnded = NO; view = <_UIWebViewScrollView 0x125825400>; target= <(action=handlePinch:, target=<_UIWebViewScrollView 0x125825400>)>>

最佳答案

这意味着数组还没有被初始化为一个非零值。

当你在类型后面加上感叹号 ! 时,你告诉 Swift 两件事:

  • gestureArray 的值为nil 是完全合法的,并且
  • 您要在访问 gestureArray 之前为其分配一个非零值。

作为返回,Swift 允许您访问 gestureArray,就好像它不是可选的(即使用 gestureArray.insert(...) 而不是 gestureArray!.insert (...))

从您得到的异常来看,当您对其调用 insert 时,gestureArray 仍然是 nil

关于ios - Swift - 在将项目添加到数组时解包 Optional 值时意外发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38508917/

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