Objective-C comtesting si array con ints contiene int

Gente, estoy tratando de hacer lo siguiente. Tengo una matriz (NSArray) llamada 'specialLevels', esa matriz se ve así:

specialLevels = @[@2, @4, @6, @9]; 

Esto debería ser un set de int's. También obtuve el int 'currentLevel' (básico int sin object).

Y quiero verificar si el currentLevel está en la matriz de specialLevels. Sé que el método 'containsObject' existe, pero esto no funcionará en mi caso.

¿Qué recomendarían ustedes en este caso?

Entonces pensé en esto, pero me siento un poco extraño:

 if ([specialLevels containsObject:[NSNumber numberWithInt:currentLevel]]) { // other code in here } 

specialLevels no es una matriz de ints. Es una matriz de objects NSNumber. @ 2, @ 4, @ 6, @ 8 crean cada una una instancia NSNumber equivalente a llamar [[NSNumber numberWithInt: value]. Cuando llama a containsObject, también necesita pasar un object NSNumber para que containsObject pueda coincidir con el valor (usando isEqual :).

Puede leer aquí los literales de Objective-C .

También podría escribir:

 if ([specialLevels containsObject:@(currentLevel)]) { // other code in here } 

que está más en consonancia con el estilo de su otro código.