Проверьте, установлен ли BOOL (не может быть, покончили == ноль),

Если вы хотите, чтобы культура была специфической, вы можете попробовать следующее:

(19950000.0).ToString("N",new CultureInfo("en-US")) = 19,950,000.00

(19950000.0).ToString("N",new CultureInfo("is-IS")) = 19.950.000,00

Примечание. Некоторые культуры используют , для обозначения десятичных чисел, а не ., поэтому будьте осторожны.

23
задан Nifle 5 January 2010 в 20:08
поделиться

3 ответа

Вы не можете. BOOL является либо YES, либо NO. Там нет другого государства. Обходным путем было бы использовать NSNumber ([NSNumber numberWithBool:YES];), а затем проверить, является ли сам NSNumber nil. Или есть второй BOOL, чтобы указать, изменили ли вы значение первого.

40
ответ дан Dave DeLong 29 November 2019 в 01:43
поделиться

Досадно, что Objective-C не имеет булева класса. Это, безусловно, такое чувство, что должно, и это сбивает с толку многих людей. В коллекциях и основных данных все bool хранятся как экземпляры NSNumber.

Это действительно раздражает необходимость постоянно конвертировать туда и обратно.

5
ответ дан TechZen 29 November 2019 в 01:43
поделиться

Можно использовать что-то вроде этого вместо этого...

@import Foundation;

@interface CSBool : NSObject

+ (CSBool *)construct:(BOOL)value;

@property BOOL value;

@end

#import "CSBool.h"

@implementation CSBool

+ (CSBool *)construct:(BOOL)value {
    CSBool *this = [self new];
    this.value = value;
    return this;
}
@end
0
ответ дан 29 November 2019 в 01:43
поделиться