Что-то, что вызвало мой интерес, - это определение типа BOOL Objective-C.Почему тип данных Objective-C Boolean определяется как подписанный символ?
Почему это определяется как signed char
(что может вызвать неожиданное поведение, если значение больше 1 байт в длину назначается к нему), а не как int
, как С делает (намного меньше запаса для ошибки: нулевое значение false, имеет значение, отличное от нуля)?
Единственная причина, по которой я могу думать, это создание оптимизационного хранилища Objective-C, потому что char
будет использовать меньше памяти, чем int
. Пожалуйста, кто-нибудь может просветить меня?
Просто не присваивайте ему ничего, кроме YES и NO, а когда вы его протестируете, просто проверьте, установлено ли оно или нет. Это руководство, поэтому не должно быть никаких проблем с тем глупым типом, который они выбирают по любой глупой причине, которую они выбрали;) –