小编7yn*_*k3r的帖子

NSInvalidArgumentException - [__ NSCFString unsignedLongLongValue]:发送到实例的无法识别的选择器

在使用JSONModel解析我的模型时,我发现了这个例外.

NSInvalidArgumentException -[__NSCFString unsignedLongLongValue]: unrecognized selector sent to instance 0x1782210c0
Run Code Online (Sandbox Code Playgroud)

问题发生在里面,JSONModel.m因为它取决于[NSObject setValue:forKey:].

我找到了一种轻松复制它的方法.

@property NSUInteger uintegerProperty;
[...]
[self setValue:@"1" forKey:@"uintegerProperty"];
Run Code Online (Sandbox Code Playgroud)

这工作在32位,因为setValue最终调用longLongVaue定义NSString,但在64位的情况下,它的调用unsignedLongLongValue是未定义的NSString.

在我的特定情况下,问题是enum在模型中使用.

typedef NS_ENUM(NSUInteger, kNotificationTypeEnum)
{
    kNotificationTypeResponse = 1,
    kNotificationTypeAlert = 2
};
Run Code Online (Sandbox Code Playgroud)

处理这种情况的最佳方法是什么?

堆栈跟踪

2014-12-31 17:48:43.789 mobile-iOS[17851:613] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString unsignedLongLongValue]: unrecognized selector sent to instance 0x10f1feeb0'
*** First throw call stack:
(
    0 …
Run Code Online (Sandbox Code Playgroud)

objective-c 32bit-64bit ios jsonmodel

10
推荐指数
2
解决办法
2882
查看次数

如何在Crashlytics/Fabric中更改iOS应用程序图标

我已经更新了应用程序图标资源,但我找不到在Crashlytics/Fabric上反映这一点的方法.

ios crashlytics twitter-fabric

5
推荐指数
1
解决办法
2781
查看次数

台风使用故事板与视图控制器初始化器

我想用故事板创建一个名为"child"的视图控制器,所以我定义:

- (TyphoonStoryboard *)storyBoard
{
    return [TyphoonDefinition withClass:[TyphoonStoryboard class] configuration:^(TyphoonDefinition* definition) {
        [definition useInitializer:@selector(storyboardWithName:factory:bundle:) parameters:^(TyphoonMethod *initializer) {
            [initializer injectParameterWith:@"Storyboard"];
            [initializer injectParameterWith:self];
            [initializer injectParameterWith:[NSBundle mainBundle]];
        }];
        definition.scope = TyphoonScopeSingleton; //Let's make this a singleton
    }];
}

- (ChildViewController *)childViewControllerFromStoryboard
{
    return [TyphoonDefinition withFactory:self.storyBoard selector:@selector(instantiateInitialViewController)];
}
Run Code Online (Sandbox Code Playgroud)

我将有一个将包含子视图控制器的根视图控制器

- (RootViewController *)rootViewController {
    return [TyphoonDefinition withClass:[RootViewController class] configuration:^(TyphoonDefinition *definition) {
        [definition useInitializer:@selector(initWithChildViewController:) parameters:^(TyphoonMethod *initializer) {
            [initializer injectParameterWith:self.childViewControllerFromStoryboard];
        }];
    }]; 
}
Run Code Online (Sandbox Code Playgroud)

最后一部分只是为子视图控制器注入依赖项:

- (ChildViewController *)childViewController {
    return [TyphoonDefinition withClass:[ChildViewController class] configuration:^(TyphoonDefinition *definition) {
        // Initilization …
Run Code Online (Sandbox Code Playgroud)

dependency-injection storyboard typhoon

3
推荐指数
1
解决办法
1434
查看次数