Tamsayılar için kullanırdım NSNumber. Ama EVET ve HAYIR nesneler değil sanırım. Afaik Sadece bir nesneye nesne ekleyebilirim NSDictionary, değil mi?
Booleanlar için herhangi bir sarmalayıcı sınıfı bulamadım. Var mı?
Tamsayılar için kullanırdım NSNumber. Ama EVET ve HAYIR nesneler değil sanırım. Afaik Sadece bir nesneye nesne ekleyebilirim NSDictionary, değil mi?
Booleanlar için herhangi bir sarmalayıcı sınıfı bulamadım. Var mı?
Yanıtlar:
NSNumber kullanırsınız.
Init ... ve number ... boolean alan yöntemleri vardır, tıpkı tamsayılar gibi.
Gönderen NSNumber sınıf referansı :
// Creates and returns an NSNumber object containing a
// given value, treating it as a BOOL.
+ (NSNumber *)numberWithBool:(BOOL)value
ve:
// Returns an NSNumber object initialized to contain a
// given value, treated as a BOOL.
- (id)initWithBool:(BOOL)value
ve:
// Returns the receiver’s value as a BOOL.
- (BOOL)boolValue
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], @"someKey", nil];
@YESile aynı[NSNumber numberWithBool:YES]
Eğer bunu birebir olarak ilan ediyorsanız ve clang v3.1 veya üstünü kullanıyorsanız, bunu birebir olarak ilan ediyorsanız @NO / @YES kullanmalısınız. Örneğin
NSMutableDictionary* foo = [@{ @"key": @NO } mutableCopy];
foo[@"bar"] = @YES;
Bununla ilgili daha fazla bilgi için:
NSDictionary, bir değil , yalnızca bir oluşturur NSMutableDictionary. Değişebilir @YESolmadığı foo[@"bar"]için atama yapmak mümkün @{ @"key": @NO }değildir.
Jcampbell1'in belirttiği gibi , artık NSNumbers için değişmez sözdizimini kullanabilirsiniz:
NSDictionary *data = @{
// when you always pass same value
@"someKey" : @YES
// if you want to pass some boolean variable
@"anotherKey" : @(someVariable)
};
Bunu dene:
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'");
}
Çıktı aşağıdaki gibi olacaktır:
Boole ise DOĞRU 'için ratik '
Boole, ' Sachin için YANLIŞ '
[NSNumber numberWithBool:NO]ve [NSNumber numberWithBool:YES].