Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift碰撞报告功能签名专业化归担保人所有_Ios_Swift - Fatal编程技术网

Ios Swift碰撞报告功能签名专业化归担保人所有

Ios Swift碰撞报告功能签名专业化归担保人所有,ios,swift,Ios,Swift,在我用Swift重写了一些Objective-C代码后,我的许多用户开始崩溃。当链接到Xcode时,我根本无法复制,我也不明白为什么只有少数用户会崩溃。我从HockeyApp中检索到日志,说明的原因是:在当前参数寄存器中找到的选择器名称:registeredContacts。这是我在代码中处理的一个数组,但在任何情况下,我都不能让它在访问或设置该数组时崩溃 我认为这可能是我的Swift块语法以及我如何从Objective-C调用它。我的Swift函数签名: func检索活动(处理程序:([WPA

在我用Swift重写了一些Objective-C代码后,我的许多用户开始崩溃。当链接到Xcode时,我根本无法复制,我也不明白为什么只有少数用户会崩溃。我从HockeyApp中检索到日志,说明的原因是:
在当前参数寄存器中找到的选择器名称:registeredContacts
。这是我在代码中处理的一个数组,但在任何情况下,我都不能让它在访问或设置该数组时崩溃

我认为这可能是我的Swift块语法以及我如何从Objective-C调用它。我的Swift函数签名:

func检索活动(处理程序:([WPActivity],Error?->Void)?{

我用Objective-C将其命名为:

[[WPActivitiesManager shared]retrieveActivitiesWithHandler:nil];

有时我确实使用这个块,但在启动时我并不需要它。正如我所说的,这对我来说不会崩溃,也没有编译器警告

我的崩溃日志的顶部:

Exception Type:  SIGTRAP
Exception Codes: #0 at 0x1001c0438
Crashed Thread:  0

Application Specific Information:
Selector name found in current argument registers: registeredContacts

Thread 0 Crashed:
0   Waypoint                             0x00000001001c0438 function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Owned To Guaranteed> of Waypoint.WPActivitiesManager.(retrieveActivities (handler : ([__ObjC.WPActivity], Swift.Error?) -> ()?) -> ()).(closure #2) with unmangled suffix "_merged" + 612
1   Waypoint                             0x00000001001c13a4 partial apply forwarder for Waypoint.WPActivitiesManager.(retrieveActivities (handler : ([__ObjC.WPActivity], Swift.Error?) -> ()?) -> ()).(closure #2) with unmangled suffix "_merged" + 64
2   Foundation                           0x0000000189ca2754 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 12
3   Foundation                           0x0000000189be72c8 -[NSBlockOperation main] + 92
4   Foundation                           0x0000000189bd78c4 -[__NSOperationInternal _start:] + 616
5   Foundation                           0x0000000189ca4b00 __NSOQSchedule_f + 224
6   libdispatch.dylib                    0x00000001880691c0 _dispatch_client_callout + 12
7   libdispatch.dylib                    0x000000018806dd6c _dispatch_main_queue_callback_4CF + 996
8   CoreFoundation                       0x000000018918bf2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
9   CoreFoundation                       0x0000000189189b18 __CFRunLoopRun + 1656
10  CoreFoundation                       0x00000001890b8048 CFRunLoopRunSpecific + 440
11  GraphicsServices                     0x000000018ab3e198 GSEventRunModal + 176
12  UIKit                                0x000000018f0a42fc -[UIApplication _run] + 680
13  UIKit                                0x000000018f09f034 UIApplicationMain + 204
14  Waypoint                             0x0000000100122888 main (main.m:14)
15  libdyld.dylib                        0x000000018809c5b8 start + 0
异常类型:SIGTRAP
异常代码:0x1001c0438处为0
崩溃线程:0
特定于应用程序的信息:
在当前参数寄存器中找到选择器名称:registeredContacts
线程0崩溃:
0航路点0x00000001001c0438功能签名专用化

我怀疑
registeredContacts
注释(我相信是由HockeyApp添加的)与此处无关

不,我想你是倒着说的。这正是相关的。你的撞车报告是不相关的

SIGTRAP仅仅意味着我们得到了一个异常。异常被抛出到代码中(或者更确切地说,在执行代码的过程中)。但是你似乎没有得到任何关于它是什么的信息。我猜HockeyApp实际上干扰了你接收真实报告,而真实报告会告诉你异常是什么

因此,问题出在
检索活动的某个地方。您可以通过计算行数来猜测发生崩溃的位置(系统会告诉您方法中实际发生崩溃的行数)。我相信这可能是像越界数组访问这样简单的事情。因此,这里出现了一个数组
registeredContacts
,这一事实非常具有启发性。在方法中的大约那个点上查找
registeredContacts
访问

我怀疑
registeredContacts
注释(我相信是由HockeyApp添加的)与此处无关

不,我想你是倒着说的。这正是相关的。你的撞车报告是不相关的

SIGTRAP仅仅意味着我们得到了一个异常。异常被抛出到代码中(或者更确切地说,在执行代码的过程中)。但是你似乎没有得到任何关于它是什么的信息。我猜HockeyApp实际上干扰了你接收真实报告,而真实报告会告诉你异常是什么


因此,问题出在
检索活动的某个地方。您可以通过计算行数来猜测发生崩溃的位置(系统会告诉您方法中实际发生崩溃的行数)。我相信这可能是像越界数组访问这样简单的事情。一个数组
registeredContacts
出现在这里这一事实很有启发性。在方法中的大约那个点上寻找
registeredContacts
访问。

它确实与
registeredContacts
相关。块访问这个arr是的,在调用块之前,我确保数组至少是一个空的
NSArray
,但由于某些原因,在非常罕见的情况下,它一定是
nil
。我在swift代码中添加了一个
,使其成为可选的,并且它修复了出现问题的少数设备中的问题。我不得不说,崩溃报告(包括苹果的报告)一点也没有帮助。“我不得不说崩溃报告一点也没有帮助”是的,内存管理问题就是这样。几天前我写了一个堆栈溢出问题,抱怨这一点,但我不得不删除它,因为这不是一个真正的问题,只是一个抱怨而已。:)顺便说一句,你在Swift应用程序中提到NSArray的事实是一种不好的味道,你应该立即处理它。NSArray不是Swift,你使用它会伤害你自己。这是因为我最近才在Swift中编写和重写部分应用程序,其中90%在Obj-C中。注意!好吧,我可能会在这里感到困惑。我假设t应用程序中给您带来麻烦的部分是用Swift编写的。对此很抱歉。它确实与
registeredContacts
有关。块访问此数组,在调用块之前,我确保数组至少是一个空的
NSArray
,但由于某些原因,在非常罕见的情况下它一定是
nil
。我在swift代码中添加了一个
,使其成为可选的,并修复了少数出现问题的设备中的问题。我不得不说,崩溃报告(包括来自苹果的报告)一点用处都没有。“我不得不说,崩溃报告一点用处都没有。”是的,内存管理问题就是这样。几天前我写了一个堆栈溢出问题来抱怨这个问题,但我不得不删除它,因为这不是一个真正的问题,只是一个抱怨。:)顺便说一句,你在Swift应用程序中提到NSArray是一个坏消息,你应该立即关注它Bly.NSArray不是Swift,你使用它会伤害你自己。这是因为我最近才用Swift编写和重写部分应用程序,其中90%是用Obj-C编写的。注意!好吧,我可能会在这里感到困惑。我假设给你带来麻烦的应用程序部分是用Swift编写的。对此表示抱歉。