在模拟器上运行应用程序时,它崩溃并说线程 1:断点 3.1。我该怎么办?

Posted

技术标签:

【中文标题】在模拟器上运行应用程序时,它崩溃并说线程 1:断点 3.1。我该怎么办?【英文标题】:When running the app on simulator, it crashes and say thread 1: breakpoint 3.1. What should I do? 【发布时间】:2017-06-13 14:44:13 【问题描述】:

我是编程新手,现在正在尝试做一个应用程序。当我尝试制作一个谷歌登录按钮时,问题就开始了,当我认为我已经实现了这一点时,我尝试了模拟器,点击它们时我的按钮都不起作用,甚至文本方块也不起作用。然后模拟器开始崩溃,代码线程 1:SIGABRT。我在某个地方读到,你可以做一个例外断点来查看问题出在哪里,当我这样做时,我来到了一些行,其中一行写着 Thread 1: Breakpoint 3.1。

import UIKit
import Google

class ViewController: UIViewController, GIDSignInUIDelegate 

    override func viewDidLoad() 
    super.viewDidLoad()

    GIDSignIn.sharedInstance().uiDelegate = self


    // Do any additional setup after loading the view, typically from a nib.




override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()

    // Dispose of any resources that can be recreated.

@IBOutlet weak var signinbutton3: GIDSignInButton!

@IBOutlet weak var signinbutton: GIDSignInButton!

func signInWillDispatch(signIn: GIDSignIn!, error: NSError!) 



// Present a view that prompts the user to sign in with Google
func signIn(signIn: GIDSignIn!,
            presentViewController viewController: UIViewController!) 
    self.present(viewController, animated: true, completion: nil)

    print("Sign in presented")


// Dismiss the "Sign in with Google" view
func signIn(signIn: GIDSignIn!,
            dismissViewController viewController: UIViewController!) 
    self.dismiss(animated: true, completion: nil)
    print("Sign in dismissed")




override func viewDidAppear(_ animated: Bool) 
    self.performSegue(withIdentifier: "loginView", sender: self); //this line is where the Thread 1: Breakpoint 3.1 was.





我的问题很快:

- 模拟器上的按钮不起作用

- 模拟器崩溃并在 xcode 上显示我之前显示的代码序列,最后一行显示 Thread 1: SIGABRT and Thread 1: Breakpoint 3.1。

您认为问题是什么,我应该如何解决? 编辑 我在尝试启动模拟器时收到此信息:

objc[22047]:PLBuildVersion 类在两者中都实现 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x113a45cc0) 和 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x11385c6f0)。将使用两者之一。哪一个是未定义的。 2017-06-13 21:49:25.051 启动应用程序[22047] [Firebase/Core][I-COR000003] 默认 Firebase 应用尚未 配置。将 [FIRApp configure] 添加到您的应用程序初始化中。 2017-06-13 21:49:26.013 Startifyapp[22047:788392] * 终止应用程序 由于未捕获的异常“NSInvalidArgumentException”,原因: 'Receiver()没有segue 带有标识符“loginView” * 第一次抛出调用堆栈:( 0 CoreFoundation 0x000000010bf6eb0b exceptionPreprocess + 171 1 libobjc.A.dylib 0x000000010d2ab141 objc_exception_throw + 48 2 UIKit 0x000000010e00bef3 -[UIViewController shouldPerformSegueWithIdentifier:sender:] + 0 3 Startifyapp 0x000000010b971fbf TFC11Startifyapp14ViewController13viewDidAppearfSbT + 127 4 Startifyapp 0x000000010b972021 TToFC11Startifyapp14ViewController13viewDidAppearfSbT + 49 5 UIKit 0x000000010e00ecae -[UIViewController _setViewAppearState:isAnimating:] + 704 6 UIKit 0x000000010e00f6d4 -[UIViewController _endAppearanceTransition:] + 197 7 UIKit 0x000000010dfe1f94 -[UIPresentationController transitionDidFinish:] + 868 8 UIKit 0x000000010e1f6525 -[_UICurrentContextPresentationController transitionDidFinish:] + 44 9 UIKit 0x000000010dfe5af6 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 183 10 UIKit 0x000000010e995d1c -[_UIViewControllerTransitionContext 完成过渡:] + 102 11 UIKit 0x000000010dfdeec0 -[UITransitionView notifyDidCompleteTransition:] + 251 12 UIKit 0x000000010dfdeb38 -[UITransitionView _didCompleteTransition:] + 1408 13 UIKit 0x000000010dfe1208 -[UITransitionView _transitionDidStop:finished:] + 104 14 UIKit 0x000000010def2257 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 222 15 UIKit 0x000000010def2796 -[UIViewAnimationState animationDidStop:finished:] + 136 16 QuartzCore 0x00000001151a968e _ZN2CA5Layer23run_animation_callbacksEPv + 306 17 libdispatch.dylib 0x00000001100f305c _dispatch_client_callout + 8 18 libdispatch.dylib 0x00000001100d440b _dispatch_main_queue_callback_4CF + 411 19 核心基础 0x000000010bf33909 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9 20 核心基础 0x000000010bef9ae4 __CFRunLoopRun + 2164 21 CoreFoundation 0x000000010bef9016 CFRunLoopRunSpecific + 406 22 图形服务 0x0000000111775a24 GSEventRunModal + 62 23 UIKit 0x000000010de66134 UIApplicationMain + 159 24 启动应用程序 0x000000010b9700d7 主 + 55 25 libdyld.dylib 0x000000011013f65d 开始 + 1 26 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: 终止于 NSException (lldb) 类型的未捕获异常

【问题讨论】:

您确定,您的 segue 在 InterfaceBuilder 中有正确的名称吗?另外,为什么要在 viewDidAppear 中执行 segue? 别忘了致电super.viewDidAppear() 我在 ViewController 中有 segue,因为这是 Google 开发人员告诉我的地方。我使用覆盖函数 viewDidAppear 将 super.viewDidAppear() 粘贴到 View 控制器中,但它给出了红色警告标志。我应该把它放在哪里? 我认为你的问题在于这两个:@IBOutlet weak var signinbutton3: GIDSignInButton! @IBOutlet weak var signinbutton: GIDSignInButton! 也许测试一下。 好的,谢谢!但我应该怎么处理它们?我做了你应该做的事情,通过从按钮拖动到持有 ctrl 的视图控制器并命名它们,这是怎么回事? 【参考方案1】:

我在使用 Xcode 9 和模拟器时遇到了同样的问题。 我使用的是带有 ios 11 的真实设备,它运行良好(虽然有一些错误)

【讨论】:

以上是关于在模拟器上运行应用程序时,它崩溃并说线程 1:断点 3.1。我该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

覆盖 prepareForSegue 函数时 IBAction 中的线程错误

覆盖 prepareForSegue 函数时 IBAction 中的线程错误

iOS - 如果仅在设备上运行,我的应用程序会因内存错误而崩溃

xamarin ios 应用程序因 CBCentralManager 崩溃

线程 1:信号 SIGABRT 错误应用程序崩溃

xcode ios间歇性崩溃