Я думаю, что вы почти ответили на свой вопрос - причина не использовать _Bool в новом коде Какао заключается в том, что, пока Apple не изменит свои рамки на использование _Bool (или, более вероятно, bool, определенный в stdbool.h), вынарушаете соглашение и, возможно, совместимость (по крайней мере, без хаков) с помощью _Bool или bool.Хотя я уже несколько лет увлекаюсь программированием Какао, держу пари, что если Apple вообще включит _Bool, они, вероятно, просто переопределят макрос BOOL, чтобы в любом случае использовать новый тип за кулисами, чтобы избежать неописанного редактированияк их структуре и ее документации.
При этом, (и позвольте мне предварить это, отказавшись от того, что я еще не смешал код C с Objective-C и не знаю соглашений для этого)у вас гораздо лучший пример использования нового _Bool в функциях C, возможно, с оговоркой, что он используется только для внутренних целей и не требует, чтобы метод Objective-C передавал _Bool, просто чтобы избежать путаницы для будущих программистов.Вы также, конечно, должны быть довольны тем, что всегда нуждаетесь в компиляции C99, чего у людей все еще могут быть причины избегать.Учитывая, что YES - это макрос для 1, а NO - это макрос для 0, похоже, что выиграть от более новой версии C, чтобы получить другое значение размера char, которое использует только 1 или 0, не так уж и много.
Честно говоря, когда дело доходит до этого, вы можете обойти любую из этих причин с помощью достаточного количества хакерских атак или ограничений, налагаемых на возможность повторного использования, но конечное оправдание заключается в том, что он (в настоящее время) не является частью сленга Cocoa / Objective-C, и егоПреимущества, вероятно, не перевесят потерю читабельности и / или дополнительную путаницу с другими менее знакомыми программистами, читающими ваш код.