objective-c - didreceiveregistrationtoken - firebase ios apns



Como posso adicionar um valor booleano a um NSDictionary? (4)

A nova sintaxe desde o Apple LLVM Compiler 4.0

dictionary[@"key1"] = @(boolValue);
dictionary[@"key2"] = @YES;

A sintaxe converte BOOL para NSNumber , o que é aceitável para NSDictionary .

https://ffff65535.com

Bem, para inteiros eu usaria NSNumber . Mas SIM e NÃO não são objetos, eu acho. Afaik Eu só posso adicionar objetos a um NSDictionary , certo?

Eu não consegui encontrar nenhuma classe wrapper para booleanos. Existe algum?


Como jcampbell1 apontou, agora você pode usar a sintaxe literal para NSNumbers:

NSDictionary *data = @{
                      // when you always pass same value
                      @"someKey" : @YES
                      // if you want to pass some boolean variable
                      @"anotherKey" : @(someVariable)
                      };

Tente isto:

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:[NSNumber numberWithBool:TRUE]  forKey:@"Pratik"];
[dic setObject:[NSNumber numberWithBool:FALSE] forKey:@"Sachin"];

if ([dic[@"Pratik"] boolValue])
{
    NSLog(@"Boolean is TRUE for 'Pratik'");
}
else
{
    NSLog(@"Boolean is FALSE for 'Pratik'");
}

if ([dic[@"Sachin"] boolValue])
{
    NSLog(@"Boolean is TRUE for 'Sachin'");
}
else
{
    NSLog(@"Boolean is FALSE for 'Sachin'");
}

A saída será como segue:

Boolean é TRUE para ' Pratik '

Booleano é FALSO para ' Sachin '


Você usa NSNumber.

Tem init ... e number ... métodos que usam booleanos, assim como faz inteiros e assim por diante.

A partir da referência de classe NSNumber :

// Creates and returns an NSNumber object containing a 
// given value, treating it as a BOOL.
+ (NSNumber *)numberWithBool:(BOOL)value

e:

// Returns an NSNumber object initialized to contain a
// given value, treated as a BOOL.
- (id)initWithBool:(BOOL)value

e:

// Returns the receiver’s value as a BOOL.
- (BOOL)boolValue




uikit