我不知道如何正确使用NSMutablearray。你能帮助我吗?

时间:2014-08-10 12:34:48

标签: objective-c integer nsmutablearray

我正在制作一个测验应用。这是我的代码的一部分:

-(void)getQuestion:(int)randomvalue{

    if (Stufe == 1) {
            iD = arc4random() % 50 + 1000;
        }
        if (Stufe == 2) {
            iD = arc4random() % 56 + 2000;
        }
        if (Stufe == 3) {
            iD = arc4random() % 52 + 3000;
        }

NSString *Abfrage = [NSString stringWithFormat:@"SELECT frage FROM questions WHERE id = %d", iD]; 

我正在使用sqlite3和iD我从我的数据库中得到了我的问题。现在如何将iD保存在NSMutableArray中以及如何首先检查iD是否存在于我的NSMutableArray中?因此,应用程序不会提出同样的问题。 (Stufe很难而且不重要)。

由于

1 个答案:

答案 0 :(得分:1)

从int转换为NSNumber

iD目前是int。您需要将其转换为NSNumber对象,然后才能将其存储在NSMutableArray中。您可以使用numberWithInt

执行此操作
NSNumber* iDNumber = [NSNumber numberWithInt:iD];

创建包含NSNumber的NSMutableArray

获得NSNumber后,您可以使用NSMutableArray创建arrayWithObjects

NSMutableArray *iDArray = [NSMutableArray arrayWithObjects:iDNumber, nil];

将NSNumber添加到现有的NSMutableArray

您可以使用NSMutableArray将项目添加到现有addObject

[iDArray addObject: iDNumber];

检查NSMumberArray中是否已存在NSNumber

要检查数组是否已包含该对象,您可以使用containsObject

if (![iDArray containsObject: iDNumber])
{
    [iDArray addObject: iDNumber];
}

从NSNumber转换为int

如果您希望稍后使用NSNumber作为int,则需要使用intValue将其转换回来。

int iDInt = [iDNumber intValue];