gpt4 book ai didi

swift - UISlider 抛出 NSRangeException

转载 作者:行者123 更新时间:2023-11-30 12:20:09 25 4
gpt4 key购买 nike

尽管在 Storyboard 中将每个 slider 的最小值、最大值和当前值设置为其默认值,但移动 slider 会引发错误,指出该值以某种方式移动到 2。此外,此错误仅在我添加时才开始:

var lElbowX = Int()
var rElbowX = Int()
var lElbowY = Int()
var rElbowY = Int()
var lWristX = Int()
var lWristY = Int()
var rWristX = Int()
var rWristY = Int()
var lKneeX = Int()
var lKneeY = Int()
var rKneeX = Int()
var rKneeY = Int()
var lAnkleX = Int()
var lAnkleY = Int()
var rAnkleX = Int()
var rAnkleY = Int()

@IBAction func vertical(_ sender: Any) {//The action function used to be empty
if jointPicker.selectedRow(inComponent: 2) == 1 {//left
if jointPicker.selectedRow(inComponent: 1) == 1 {//lNeck
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 2 {//lShoulder
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 3 {//lElbow
lElbowY = Int((verticalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 4 {//lWrist
lWristY = Int((verticalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 5 {//lSpine
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 6 {//lHip
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 7 {//lKnee
lKneeY = Int((verticalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 8 {//lAnkle
lAnkleY = Int((verticalSlider.value - 0.5) * 200)
}

}
if jointPicker.selectedRow(inComponent: 2) == 2 {//right
if jointPicker.selectedRow(inComponent: 1) == 1 {//rNeck
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 2 {//rShoulder
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 3 {//rElbow
rElbowY = Int((verticalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 4 {//rWrist
rWristY = Int((verticalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 5 {//rSpine
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 6 {//rHip
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 7 {//rKnee
rKneeY = Int((verticalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 8 {//rAnkle
rAnkleY = Int((verticalSlider.value - 0.5) * 200)
}

}
}
@IBAction func horizontal(_ sender: Any) {//The action function used to be empty
if jointPicker.selectedRow(inComponent: 2) == 1 {//left
if jointPicker.selectedRow(inComponent: 1) == 1 {//lNeck
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 2 {//lShoulder
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 3 {//lElbow
lElbowX = Int((horizontalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 4 {//lWrist
lWristX = Int((horizontalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 5 {//lSpine
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 6 {//lHip
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 7 {//lKnee
lKneeX = Int((horizontalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 8 {//lAnkle
lAnkleX = Int((horizontalSlider.value - 0.5) * 200)
}

}
if jointPicker.selectedRow(inComponent: 2) == 2 {//right
if jointPicker.selectedRow(inComponent: 1) == 1 {//rNeck
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 2 {//rShoulder
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 3 {//rElbow
rElbowX = Int((horizontalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 4 {//rWrist
rWristX = Int((horizontalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 5 {//rSpine
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 6 {//rHip
//nothing yet
}
if jointPicker.selectedRow(inComponent: 1) == 7 {//rKnee
rKneeX = Int((horizontalSlider.value - 0.5) * 200)
}
if jointPicker.selectedRow(inComponent: 1) == 8 {//rAnkle
rAnkleX = Int((horizontalSlider.value - 0.5) * 200)
}

}
}

调用堆栈:

2017-07-03 12:38:06.856 Exercise Generator[50942:2970421] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'
*** First throw call stack:
(
0 CoreFoundation 0x0000000110352d4b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010d66521e objc_exception_throw + 48
2 CoreFoundation 0x00000001102842eb -[__NSArrayM objectAtIndex:] + 203
3 UIKit 0x000000010db187ba -[UIPickerView selectedRowInComponent:] + 76
4 Exercise Generator 0x000000010d060734 _TFC18Exercise_Generator12selectorView8verticalfP_T_ + 180
5 Exercise Generator 0x000000010d062713 _TToFC18Exercise_Generator12selectorView8verticalfP_T_ + 67
6 UIKit 0x000000010db368bc -[UIApplication sendAction:to:from:forEvent:] + 83
7 UIKit 0x000000010dcbcc38 -[UIControl sendAction:to:forEvent:] + 67
8 UIKit 0x000000010dcbcf51 -[UIControl _sendActionsForEvents:withEvent:] + 444
9 UIKit 0x000000010dda60d4 -[UISlider beginTrackingWithTouch:withEvent:] + 1132
10 UIKit 0x000000010dcbb893 -[UIControl touchesBegan:withEvent:] + 179
11 UIKit 0x000000010dba4285 -[UIWindow _sendTouchesForEvent:] + 2043
12 UIKit 0x000000010dba5c33 -[UIWindow sendEvent:] + 4011
13 UIKit 0x000000010db529ab -[UIApplication sendEvent:] + 371
14 UIKit 0x000000010e33f72d __dispatchPreprocessedEventFromEventQueue + 3248
15 UIKit 0x000000010e338463 __handleEventQueue + 4879
16 CoreFoundation 0x00000001102f7761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
17 CoreFoundation 0x00000001102dc98c __CFRunLoopDoSources0 + 556
18 CoreFoundation 0x00000001102dbe76 __CFRunLoopRun + 918
19 CoreFoundation 0x00000001102db884 CFRunLoopRunSpecific + 420
20 GraphicsServices 0x000000011228ca6f GSEventRunModal + 161
21 UIKit 0x000000010db34c68 UIApplicationMain + 159
22 Exercise Generator 0x000000010d0674ef main + 111
23 libdyld.dylib 0x000000011130268d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

最佳答案

查看堆栈跟踪的前几帧。我将剪掉图像和地址列以避免滚动:

'*** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'
*** First throw call stack:
(
0 __exceptionPreprocess + 171
1 objc_exception_throw + 48
2 -[__NSArrayM objectAtIndex:] + 203
3 -[UIPickerView selectedRowInComponent:] + 76
4 _TFC18Exercise_Generator12selectorView8verticalfP_T_ + 180

我们看到您的 vertical(_:) 方法向选取器 View 询问组件中选定的行,并且选取器 View 尝试从数组中获取对象。该数组抛出异常,因为它被赋予索引 2,但其有效索引只有 0 和 1。

选择器 View 可能有一个组件数组,并且正在尝试从数组中获取组件 2,因为(在 vertical(_:) 中的两个不同位置)您向它询问组件 2 .

我的猜测是您的选择器 View 只有两个组件,索引为 0 和 1。

关于swift - UISlider 抛出 NSRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893141/

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