iPhone模拟器挂在NSLog上

法术杀手

我这里有一个奇怪的问题。我正在Sprite Kit中创建一个游戏,当我第一次初始化所有变量时,它似乎可以正常工作。我有一个单例类,其中包含将在游戏中使用的所有数据。这个单例包含一个对象(世界),而世界对象包含我在整个游戏中使用的对象数组。

初始化之后,我尝试打印出World对象包含在某个数组中的内容。下面是一个示例:

NSLog(@"Game manager ports: %@", [IPGameManager sharedGameData].world.ports);

但是,运行此时,模拟器将挂起。我还没有在真实设备上尝试过(还没有开发者帐户)。但是,当我在初始化World'ports'之后立即打印相同的内容时,它可以正常打印。这是World对象的头文件:

@interface IPWorld : NSObject <NSCoding>

@property (nonatomic, retain) IPPlayer* player;
@property (nonatomic, retain) NSMutableArray* ports;
@property (nonatomic, retain) NSMutableArray* crewMembers;
@property (nonatomic, retain) NSMutableArray* ships;
@property (nonatomic, retain) NSMutableArray* quests;

@end

我不认为“保留”或任何原因会导致这种情况,但我不确定是什么问题。任何帮助是极大的赞赏。谢谢!

编辑::下面是我单身的代码:

+(instancetype)sharedGameData {
    NSLog(@"Loading sharedGameData");
    static id sharedInstance = nil;

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSLog(@"should only see this once");
        sharedInstance = [self loadInstance];
    });

    return sharedInstance;
 }

+(instancetype)loadInstance {
    NSData* decodeData = [NSData dataWithContentsOfFile:[IPGameManager filePath]];
    if (decodeData) {
        IPGameManager* gameData = [NSKeyedUnarchiver unarchiveObjectWithData:decodeData];
        return gameData;
    }
    return [[IPGameManager alloc] init];
}

+(NSString*)filePath {
    static NSString* filePath = nil;
    if (!filePath) {
        filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"gamedata"];
    }
    return filePath;
}
道格·理查森(Doug Richardson)

要调试任何挂起,您需要做的第一件事是所有线程的堆栈跟踪。在iOS模拟器中发生这种情况时,请按Xcode中的“暂停”按钮,然后查看堆栈跟踪。您还可以在调试器窗口中键入t a a bt(这意味着线程将应用所有回溯)转储所有线程的堆栈跟踪。

一旦有了它,就可以查看主线程的阻塞状态(例如,死锁,阻塞I / O,无限递归)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xcode上出现重复的iPhone模拟器

来自分类Dev

UITextField在iPhone模拟器上不是白色-Xcode 12.0.1

来自分类Dev

在OSX iPhone模拟器上禁用标题栏

来自分类Dev

生成iOS App无法在iPhone或模拟器上更新

来自分类Dev

为什么我的显示在 iPhone 模拟器和 iPad 模拟器上看起来不同?

来自分类Dev

iPhone App无法在iphone 6模拟器上正确显示

来自分类Dev

iPhone 6 plus模拟器缩放

来自分类Dev

iPhone模拟器只加载黑屏

来自分类Dev

图片显示在模拟器上,而不显示在真实的iPhone上

来自分类Dev

应用在iPhone上崩溃,但模拟器或iPad上没有崩溃?

来自分类Dev

iOS启动图片不会显示在iPhone或模拟器上,而只能在iPad上使用

来自分类Dev

UIScrollView在所有模拟器上滚动,但在我的iPhone上不滚动

来自分类Dev

在iOS模拟器上运行的功能比在iPhone上运行的功能更快

来自分类Dev

即使 iOS 应用程序在模拟器上运行,它也会在 iPhone 上崩溃

来自分类Dev

Opencv 功能匹配在 iPhone 上中断,但在模拟器上没有

来自分类Dev

如何在模拟器上检测iPhone 6(6 Plus)

来自分类Dev

状态栏显示黑色文本,仅在iPhone 6 iOS 8模拟器上

来自分类常见问题

启动画面imageView未出现在模拟器中的iPhone 12上

来自分类Dev

在模拟器上检测iPhone 6 / Plus时遇到问题

来自分类Dev

IOS模拟器中的硬件加速框架是否反映了它在真实iPhone上的功能?

来自分类Dev

在模拟器中显示模糊效果,但在iPhone上不显示

来自分类Dev

iPhone 6上的模拟器和物理设备之间的差异

来自分类Dev

使用iOS 7在iPhone模拟器上测试CoreMotion API(需要M7)

来自分类Dev

Xamarin便携式类库在iPhone模拟器上被拒绝访问代理

来自分类Dev

iPhone模拟器上的海拔高度始终为零

来自分类Dev

SpriteKit中的粒子未出现在iPhone模拟器上

来自分类Dev

启动画面imageView未出现在模拟器中的iPhone 12上

来自分类Dev

Forward GeoCoding正在模拟器上运行,但不适用于iPhone

来自分类Dev

iPhone模拟器上的海拔高度始终为零

Related 相关文章

  1. 1

    Xcode上出现重复的iPhone模拟器

  2. 2

    UITextField在iPhone模拟器上不是白色-Xcode 12.0.1

  3. 3

    在OSX iPhone模拟器上禁用标题栏

  4. 4

    生成iOS App无法在iPhone或模拟器上更新

  5. 5

    为什么我的显示在 iPhone 模拟器和 iPad 模拟器上看起来不同?

  6. 6

    iPhone App无法在iphone 6模拟器上正确显示

  7. 7

    iPhone 6 plus模拟器缩放

  8. 8

    iPhone模拟器只加载黑屏

  9. 9

    图片显示在模拟器上,而不显示在真实的iPhone上

  10. 10

    应用在iPhone上崩溃,但模拟器或iPad上没有崩溃?

  11. 11

    iOS启动图片不会显示在iPhone或模拟器上,而只能在iPad上使用

  12. 12

    UIScrollView在所有模拟器上滚动,但在我的iPhone上不滚动

  13. 13

    在iOS模拟器上运行的功能比在iPhone上运行的功能更快

  14. 14

    即使 iOS 应用程序在模拟器上运行,它也会在 iPhone 上崩溃

  15. 15

    Opencv 功能匹配在 iPhone 上中断,但在模拟器上没有

  16. 16

    如何在模拟器上检测iPhone 6(6 Plus)

  17. 17

    状态栏显示黑色文本,仅在iPhone 6 iOS 8模拟器上

  18. 18

    启动画面imageView未出现在模拟器中的iPhone 12上

  19. 19

    在模拟器上检测iPhone 6 / Plus时遇到问题

  20. 20

    IOS模拟器中的硬件加速框架是否反映了它在真实iPhone上的功能?

  21. 21

    在模拟器中显示模糊效果,但在iPhone上不显示

  22. 22

    iPhone 6上的模拟器和物理设备之间的差异

  23. 23

    使用iOS 7在iPhone模拟器上测试CoreMotion API(需要M7)

  24. 24

    Xamarin便携式类库在iPhone模拟器上被拒绝访问代理

  25. 25

    iPhone模拟器上的海拔高度始终为零

  26. 26

    SpriteKit中的粒子未出现在iPhone模拟器上

  27. 27

    启动画面imageView未出现在模拟器中的iPhone 12上

  28. 28

    Forward GeoCoding正在模拟器上运行,但不适用于iPhone

  29. 29

    iPhone模拟器上的海拔高度始终为零

热门标签

归档