Réponses:
Vous utilisez NSNumber.
Il a des méthodes init ... et number ... qui prennent des booléens, tout comme il le fait avec des entiers et ainsi de suite.
À partir de la référence de classe NSNumber :
// Creates and returns an NSNumber object containing a 
// given value, treating it as a BOOL.
+ (NSNumber *)numberWithBool:(BOOL)value
et:
// Returns an NSNumber object initialized to contain a
// given value, treated as a BOOL.
- (id)initWithBool:(BOOL)value
et:
// Returns the receiver’s value as a BOOL.
- (BOOL)boolValue
              NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], @"someKey", nil];
                    @YESest le même que[NSNumber numberWithBool:YES]
                    Si vous le déclarez comme un littéral et que vous utilisez clang v3.1 ou supérieur, vous devez utiliser @NO / @YES si vous le déclarez comme un littéral. Par exemple
NSMutableDictionary* foo = [@{ @"key": @NO } mutableCopy];
foo[@"bar"] = @YES;
Pour plus d'informations à ce sujet:
NSDictionary, pas un NSMutableDictionary. L'affectation @YESà foo[@"bar"]n'est donc pas possible car elle @{ @"key": @NO }n'est pas modifiable.
                    Comme jcampbell1 l'a souligné, vous pouvez maintenant utiliser la syntaxe littérale pour NSNumbers:
NSDictionary *data = @{
                      // when you always pass same value
                      @"someKey" : @YES
                      // if you want to pass some boolean variable
                      @"anotherKey" : @(someVariable)
                      };
              Essaye ça:
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'");
}
La sortie sera la suivante:
Boolean est TRUE pour ' Pratik '
Boolean est FALSE pour ' Sachin '
[NSNumber numberWithBool:NO]et [NSNumber numberWithBool:YES].