我正在制作一个测验应用。这是我的代码的一部分:
-(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很难而且不重要)。
由于
答案 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];