API OSX являются многоуровневыми, есть базовые низкоуровневые API, которые создаются самостоятельно, а затем на их основе создаются более богатые API, в свою очередь использующие сами API более низкого уровня.
CFMutableArray является частью инфраструктуры CoreFoundation и используется API-интерфейсами более низкого уровня. NSMutableArray (я полагаю, что NS означает NextStep) является частью платформы Foundation и используется в API более высокого уровня, таких как AppKit или Cocoa.
То, что вы должны использовать, зависит от того, где вы работаете. Если вы работаете в насыщенном пользовательском интерфейсе с использованием Cocoa, NSMutableArray - это правильный выбор. Если вы работаете с демоном, драйвером или чем-то еще, просто используя CoreFoundation, используйте CFMutableArray.
К счастью, как указано выше, многие из этих типов CF / NS являются бесплатными мостовыми соединениями, поэтому вы можете использовать API-интерфейсы CoreFoundation, например, с. Какао без необходимости постоянно конвертировать типы.