swift - 这个错误 (NSInvalidArgumentException) 是什么意思?

标签 swift xcode sprite-kit

我正在制作的俄罗斯方 block 游戏出现此错误。不太确定如何将 Xcode 项目上传到 GitHub,因为我没有访问权限而被拒绝,所以很抱歉没有上下文。这些错误对我来说似乎都没有实际意义,它只是一个随机的数字集合和一些可识别的短语,如“SpriteKit”或“UIKit”。

2017-05-15 10:09:10.942 Tetris[2258:77198] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Setting this node as parent would create a loop: <SKNode> name:'(null)' position:{6, -6} scale:{1.00, 1.00} accumulatedFrame:{{12, -412}, {200, 400}}'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010fa4dd4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010cacb21e objc_exception_throw + 48
    2   CoreFoundation                      0x000000010fab72b5 +[NSException raise:format:] + 197
    3   SpriteKit                           0x000000010cfe3134 -[SKNode(setParent) setParent:] + 87
    4   SpriteKit                           0x000000010cfdc376 -[SKNode insertChild:atIndex:] + 230
    5   SpriteKit                           0x000000010cfdc26f -[SKNode addChild:] + 68
    6   Tetris                              0x000000010c4bafe0 _TFC6Tetris9GameScenecfT4sizeVSC6CGSize_S0_ + 1376
    7   Tetris                              0x000000010c4bb080 _TFC6Tetris9GameSceneCfT4sizeVSC6CGSize_S0_ + 64
    8   Tetris                              0x000000010c4c23f2 _TFC6Tetris18GameViewController11viewDidLoadfT_T_ + 274
    9   Tetris                              0x000000010c4c3222 _TToFC6Tetris18GameViewController11viewDidLoadfT_T_ + 34
    10  UIKit                               0x000000010d368a3d -[UIViewController loadViewIfRequired] + 1258
    11  UIKit                               0x000000010d368e70 -[UIViewController view] + 27
    12  UIKit                               0x000000010d2324b5 -[UIWindow addRootViewControllerViewIfPossible] + 71
    13  UIKit                               0x000000010d232c06 -[UIWindow _setHidden:forced:] + 293
    14  UIKit                               0x000000010d246519 -[UIWindow makeKeyAndVisible] + 42
    15  UIKit                               0x000000010d1bef8d -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4818
    16  UIKit                               0x000000010d1c50ed -[UIApplication _runWithMainScene:transitionContext:completion:] + 1731
    17  UIKit                               0x000000010d1c226d -[UIApplication workspaceDidEndTransaction:] + 188
    18  FrontBoardServices                  0x0000000116a4b6cb __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
    19  FrontBoardServices                  0x0000000116a4b544 -[FBSSerialQueue _performNext] + 189
    20  FrontBoardServices                  0x0000000116a4b8cd -[FBSSerialQueue _performNextFromRunLoopSource] + 45
    21  CoreFoundation                      0x000000010f9f2761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    22  CoreFoundation                      0x000000010f9d798c __CFRunLoopDoSources0 + 556
    23  CoreFoundation                      0x000000010f9d6e76 __CFRunLoopRun + 918
    24  CoreFoundation                      0x000000010f9d6884 CFRunLoopRunSpecific + 420
    25  UIKit                               0x000000010d1c0aea -[UIApplication _run] + 434
    26  UIKit                               0x000000010d1c6c68 UIApplicationMain + 159
    27  Tetris                              0x000000010c4c858f main + 111
    28  libdyld.dylib                       0x00000001109fd68d start + 1
    29  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

最佳答案

改编自Official Documentation , NSInvalidArgumentException 是:

Name of an exception that occurs when you pass an invalid argument to a method, such as a nil pointer where a non-nil object is required.

它还应该有它发生的原因


关于您的案例,原因是:

Setting this node as parent would create a loop: name:'(null)' position:{6, -6} scale:{1.00, 1.00} accumulatedFrame:{{12, -412}, {200, 400}}

尝试调试崩溃的场景,原因应该足够清楚,以便检测导致崩溃的原因。

关于swift - 这个错误 (NSInvalidArgumentException) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43995761/

相关文章:

ios - 在 Swift 中使用 Regex 进行简单搜索时,如何避免由于搜索字符串中的特殊字符而导致的错误?

ios - 在 Swift 中检测两个对象之间的碰撞

swift - 整数值不更新

ios - Swift 位置返回 nil

swift - 无法将类型 '[Int]' 的值转换为预期的参数类型 'Int'

iphone - Objective C Integer 第一次为 0,但第二次发生变化

ios - 在 UIWebView 网页中使用 xcassets 图像作为 img 标签的 src

swift - 当敌人靠近时玩家不会检测到碰撞

ios - 5 秒后关闭 UIAlertView Swift

ios - 迅速,xcode : simulator window is tiny