标签: nsnumber

目标C:数字之间的比较问题

我正在尝试实现下面的代码段.但是我无法得到预期的结果.例如,如果我的disanceFromLoc = 0.16,我的输出仍然是0.16 km.

我比较价值的方式有问题吗?object是'NSNumber'类(在核心数据中将其定义为double)

if ([object.distanceFromLoc doubleValue] < 0)
    {
        cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"Approx. Distance: %0.2f m", [object.distanceFromLoc doubleValue]*1000];
    }
    else 
    {
        cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"Approx. Distance: %0.2f km", [object.distanceFromLoc doubleValue]];
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

真鹤

comparison objective-c nsnumber ios

0
推荐指数
1
解决办法
567
查看次数

通过循环遍历NSMutableArray来检索整数

有人可以通过循环显示如何检索值NSMutableArray吗?我的代码基本上为数组添加整数,如下所示:

NSMutableArray *ptr = [[NSMutableArray alloc] init];

[ptr addObject:[NSNumber numberWithInt:1]];
[ptr addObject:[NSNumber numberWithInt:2]];
[ptr addObject:[NSNumber numberWithInt:3]];

 // How to retrieve them as integers?
Run Code Online (Sandbox Code Playgroud)

我正在尝试从数组中检索每个数字并将它们总计为总值.

cocoa loops objective-c nsnumber nsmutablearray

0
推荐指数
1
解决办法
2904
查看次数

在Objective-C中,NSNumber比较iOS SDK 4.2与5?

我在我的应用程序中发现了一个错误:逻辑是我NSNumbers使用"==" 比较两个,我相信它曾经起作用.但它不再传递iOS sdk 5,所以我需要使用isEqualToNumber.

iOS sdk 4.2的任何人都可以尝试运行以下代码并给我结果.我试图恢复到较旧的Xcode来自己测试,但我无法做到这一点.

NSNumber *num1 = [NSNumber numberWithInt:100];
NSNumber *num2 = [NSNumber numberWithInt:100];

if (num1 == num2)
{
    NSLog(@"== YES");
}
else
{
    NSLog(@"== NO");
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsnumber

0
推荐指数
1
解决办法
2049
查看次数

在NSMutableArray中更改布尔值

所以我试图改变我所制作的NSMutableArray中的所有布尔值.

我有:

@property (nonatomic, retain) NSMutableArray *isDinosaurTapped;
Run Code Online (Sandbox Code Playgroud)

并合成:

@synthesize isDinosaurTapped;
Run Code Online (Sandbox Code Playgroud)

并设置[EDITED to show isDinosaurTapped]:

NSMutableArray *newDinosaurTaps = [[NSMutableArray alloc] init];
    for( int i = 0; i < [dinoSprites count]; i++ )
    {
        NSNumber *isTapped = [posPlist valueForKeyPath:[NSString stringWithFormat:@"Dinosaurs.Dinosaur_%i.isTapped", i]];
        [newDinosaurTaps addObject:isTapped];
    }
    self.isDinosaurTapped = [newDinosaurTaps copy];


    for( int i = 0; i < [isDinosaurTapped count]; i++ )
    {
        [isDinosaurTapped replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:NO]];
    }
Run Code Online (Sandbox Code Playgroud)

当我构建它的时候很好,但是当我实际构建并运行时,我不断得到一个SIGABRT:' - [__ NSArrayI replaceObjectAtIndex:withObject:]:发送到实例的无法识别的选择器.

我是否错误地设置了NSMutableArray的属性?但根据这个,我的属性应该没问题.

非常感谢任何反馈!:d

boolean objective-c nsnumber nsmutablearray ios

0
推荐指数
1
解决办法
490
查看次数

NSNumber如何获得最小的共同点?像0.375的3/8?

假如我有一个NSNumber,介于0和1之间,并且可以使用X/Y表示,在这种情况下如何计算X和Y?我不想比较:

if (number.doubleValue == 0.125)
{
    X = 1;
    Y = 8;
}
Run Code Online (Sandbox Code Playgroud)

所以我得到1/8的0.125

algorithm objective-c nsnumber ios

0
推荐指数
1
解决办法
574
查看次数

增加NSNumber

这里是obj-C和Cocoa的新手

我试图在一个方法中增加一个变量,并且习惯于C++,我想只使用变量++的术语,但这不适用于NSNumber,所以我想出了

player1Points = [NSNumber numberWithInt:([player1Points intValue] + 1)];

我很想重新将player1Points重新声明为标题中的int,但我想保留@synthesize和@property,以便我不必编写get和set例程.

有没有更简单的方法来编写这行代码?

math cocoa objective-c increment nsnumber

0
推荐指数
1
解决办法
2926
查看次数

当我尝试使用decimalNumberByMultiplyingBy时,为什么NSDecimalNumber崩溃:?

我正在尝试从用户默认值中检索一个数字并将其相乘.这是我的代码:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSDecimalNumber *current = [prefs  objectForKey:@"account"];
NSDecimalNumber *multiplier = [NSDecimalNumber decimalNumberWithString:@"1.15"];
NSDecimalNumber *floo = [current decimalNumberByMultiplyingBy: multiplier];
Run Code Online (Sandbox Code Playgroud)

一旦碰到这floo条线,它就会给我一个非常可怕的崩溃.巨大的错误gobbledygook开始于:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSCFNumber decimalNumberByMultiplyingBy:]: unrecognized selector 
sent to instance 0x8c7b1e0'
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我的天啊!发生了什么?

objective-c nsnumber

0
推荐指数
1
解决办法
900
查看次数

将NSNumber保存在plist中,而不是工作

所以我是Obj-C的新手(具有C和C++经验),我一直在努力.
很简单,我想保存并加载用户进度时的分数和级别.
我有3个功能getFilePath,loadDatasavaData.

getFilePathloadData似乎工作正常,但我不能获得saveData工作.

这是我的代码:

 -(void)saveData
 {
    NSNumber *updatedScore = [NSNumber numberWithInt:score];
    NSNumber *updatedLevel = [NSNumber numberWithInt:level];
    NSLog(@"The level im saving is %@",updatedLevel);
    NSLog(@"The score im saving is %@",updatedScore);
    NSMutableArray *value = [[NSMutableArray alloc]initWithObjects:updatedLevel,updatedScore, nil];
    [value writeToFile:[self getFilePath] atomically:YES];
}

-(NSString *)getFilePath
{
    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
    NSLog(@"the path is %@",pathArray);
    return [[pathArray objectAtIndex:0]stringByAppendingPathComponent:@"saved.plist"];
}
Run Code Online (Sandbox Code Playgroud)

我的NSLog消息返回正确的值,用户进展级别,但我无法保存它们.

objective-c plist nsnumber ios

0
推荐指数
1
解决办法
604
查看次数

不规则地保留NSNumber的数量

我在NSNumber整个应用程序(非ARC)中使用不同的语法.为了更加了解情况,我试着看看如何NSNumber保留s,具体取决于它们的初始化语法.所以我做了以下事情:

NSNumber* a = @1;
NSNumber* b = [[NSNumber alloc] initWithInt:2];
NSNumber* c = [NSNumber numberWithInt:3];

NSLog(@"%d | %d | %d", a.retainCount, b.retainCount, c.retainCount);
Run Code Online (Sandbox Code Playgroud)

这个代码片段是用按钮点击执行的,输出让我感到困惑(重复点击):

73 | 27 | 6
78 | 159 | 22
78 | 160 | 22
78 | 161 | 22
78 | 162 | 22
78 | 163 | 22
85 | 169 | 22
85 | 170 | 22
85 | 171 | 22
85 | 172 | 22
Run Code Online (Sandbox Code Playgroud)

现在这并没有真正的目的(至少在我的情况下不是这样),但我想知道这些 …

objective-c nsnumber ios retaincount

0
推荐指数
1
解决办法
501
查看次数

隐式转换失去整数精度'NSUInteger'(又名'unsigned long')到'int'警告?

嗨,我收到此错误!我在indexpath.row中使用NSNumber但它给出了警告,我的代码有什么问题请帮助.

 NSNumber *num=[NSNumber numberWithInt:indexPath.row];
        [HUD showWhileExecuting:@selector(callingMethod:) onTarget:self  withObject:num animated:YES];
Run Code Online (Sandbox Code Playgroud)

objective-c nsnumber ios

0
推荐指数
1
解决办法
510
查看次数