gpt4 book ai didi

swift - 以 NSException 类型的未捕获异常错误终止

转载 作者:行者123 更新时间:2023-11-28 08:46:19 24 4
gpt4 key购买 nike

我有一个简单的应用程序,其中循环播放 2 个 mp4。一旦 mp4 结束,应用程序就会崩溃,我会收到此错误:

"terminating with uncaught exception of type NSException"

这是我的代码。该错误是什么意思,我该如何解决?

let videoURL: NSURL = NSBundle.mainBundle().URLForResource(instrumentaimp4[skaicius], withExtension: "mp4")!
let sakeleURL: NSURL = NSBundle.mainBundle().URLForResource("sakele_blikas", withExtension: "mp4")!


player = AVPlayer(URL: videoURL)
player?.actionAtItemEnd = .None
player?.muted = true

player2 = AVPlayer(URL: sakeleURL)
player2?.actionAtItemEnd = .None
player2?.muted = true

let playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
playerLayer.zPosition = -1

let playerLayer2 = AVPlayerLayer(player: player2)
playerLayer2.videoGravity = AVLayerVideoGravityResizeAspectFill
playerLayer2.zPosition = -1



playerLayer.frame = CGRect(x: 50.0, y: 100.0, width: 240.0, height: 433.0)
playerLayer2.frame = CGRect(x:647.0, y: 90.0, width: 115.0, height: 44.0)

view.layer.addSublayer(playerLayer)
view.layer.addSublayer(playerLayer2)
player?.play()
player2?.play()

//loop video
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "loopVideo",
name: AVPlayerItemDidPlayToEndTimeNotification,
object:nil)




}


func loopVideo(notification: NSNotification) {

if let finishedPlayer = notification.object as! AVPlayer!
{
if finishedPlayer == self.player2
{
self.player2?.seekToTime(kCMTimeZero)
self.player2?.play()
} else {
self.player?.seekToTime(kCMTimeZero)
self.player?.play()
}
}
}
2016-02-06 19:33:41.874 Lietava 2[1214:107001] -[Lietava_2.display loopVideo]: unrecognized selector sent to instance 0x79a44b602016-02-06 19:33:41.879 Lietava 2[1214:107001] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Lietava_2.display loopVideo]: unrecognized selector sent to instance 0x79a44b60'*** First throw call stack:(    0   CoreFoundation                      0x00582a14 __exceptionPreprocess + 180    1   libobjc.A.dylib                     0x02735e02 objc_exception_throw + 50    2   CoreFoundation                      0x0058bd63 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275    3   CoreFoundation                      0x004c96bd ___forwarding___ + 1037    4   CoreFoundation                      0x004c928e _CF_forwarding_prep_0 + 14    5   Foundation                          0x00adaa76 __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_2 + 40    6   CoreFoundation                      0x0054a5f4 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20    7   CoreFoundation                      0x0054a2aa _CFXRegistrationPost + 458    8   CoreFoundation                      0x00549ff6 ___CFXNotificationPost_block_invoke + 54    9   CoreFoundation                      0x005963d3 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1795    10  CoreFoundation                      0x00430667 _CFXNotificationPost + 599    11  Foundation                          0x00a14b87 -[NSNotificationCenter postNotification:] + 131    12  AVFoundation                        0x001dec85 __avplayeritem_fpItemNotificationCallback_block_invoke + 6034    13  libdispatch.dylib                   0x03178377 _dispatch_call_block_and_release + 15    14  libdispatch.dylib                   0x0319b9cd _dispatch_client_callout + 14    15  libdispatch.dylib                   0x03180f90 _dispatch_main_queue_callback_4CF + 910    16  CoreFoundation                      0x004d3fde __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14    17  CoreFoundation                      0x00491cd4 __CFRunLoopRun + 2356    18  CoreFoundation                      0x004910e6 CFRunLoopRunSpecific + 470    19  CoreFoundation                      0x00490efb CFRunLoopRunInMode + 123    20  GraphicsServices                    0x04ce4664 GSEventRunModal + 192    21  GraphicsServices                    0x04ce44a1 GSEventRun + 104    22  UIKit                               0x01265bfa UIApplicationMain + 160    23  Lietava 2                           0x0009ef0c main + 140    24  libdyld.dylib                       0x031c5a21 start + 1)libc++abi.dylib: terminating with uncaught exception of type NSException(lldb) 

最佳答案

根据你写的异常(exception),更改此代码:

 NSNotificationCenter.defaultCenter().addObserver(self,
selector: "loopVideo:", //added : <---
name: AVPlayerItemDidPlayToEndTimeNotification,
object:nil)

带有:选择器表示该函数应该接收参数。
在您的情况下,通知中心搜索了不带任何参数的方法 loopVideo

关于swift - 以 NSException 类型的未捕获异常错误终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35242999/

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