小编Sim*_*Fry的帖子

为什么传递unsigned int到performSelector丢失位?

我试图将十六进制值作为unsigned int传递给使用动态链接的方法.我作为参数传递的值以某种方式被破坏.怎么了?

- (void)callPerformSelector
{
    NSNumber *argument = [NSNumber numberWithUnsignedInt:(unsigned int)0xFFFFFFFF];
    SEL selector = NSSelectorFromString(@"testPerformSelector:");
    NSLog(@"testPerformSelector object %@", argument);
   [self performSelector:selector withObject:argument];
}

- (void)testPerformSelector:(unsigned int) arg1
{
    NSLog(@"testPerformSelector unsigned int %u", arg1);
    NSLog(@"testPerformSelector hex %X", arg1);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

testPerformSelector object 4294967295
testPerformSelector unsigned int 4294967283
testPerformSelector hex FFFFFFF3
Run Code Online (Sandbox Code Playgroud)

objective-c

4
推荐指数
1
解决办法
88
查看次数

标签 统计

objective-c ×1