В техническом смысле да, это быстрее, именно по этой причине.
В практическом смысле нет, это не быстрее.Во-первых, разница в скорости крошечная .Мы говорим о миллисекундах, сэкономленных в течение всего процесса.
Экономия может быть больше на iPhone, но это все еще в значительной степени малейшее увеличение скорости, которое вы можете получить.Ваше время намного лучше потрачено на профилирование вашего приложения в Instruments и на то, что вам подсказывает, и сглаживание горячих точек в вашем собственном коде.
И вот где Foundation становится быстрее: Ваше время.
Код, который использует функцию автоматического выпуска Foundation, когда это возможно, экономит вам много времени и головной боли, избегая легко устраняемых утечек памяти (а именно, забывая писать или не получая сообщения release
).CF не имеет автоматического выпуска, поэтому вы должны помнить явно CFRelease
все, что вы создаете или копируете с ним - и когда вы забываете или не можете получить этот код (и я имею в виду , когда - я говорю изопыт), вы будете тратить гораздо больше времени на поиск утечки памяти.Статический анализатор помогает, но он никогда не сможет поймать все.
(Технически можно автоматически высвобождать объекты CF, но код для этого ужасно уродлив, и вы только поливаетеуменьшите и без того ничтожный прирост скорости.)
Итак, придерживайтесь Foundation как можно больше.Не переусердствуйте с автоматическим выпуском;даже в чистом Какао все еще бывают случаи, когда гарантируется явное освобождение объектов (в основном это жесткие циклы), и это удваивается для Cocoa Touch (поскольку iOS убьет ваше приложение, если вы выделите слишком много памяти, поэтому вы захотите выпустить большой объем).объекты как изображения как можно скорее).Но обычно автоматическое освобождение экономит вам гораздо больше времени, чем CF когда-либо спасает ваших пользователей.
Причина, не связанная со временем, заключается в том, что код Objective-C с именами аргументов (из селектора сообщений) смешивается со значениями, гораздо легче читать, чем код на основе функций C.Это может не ускорить вашу работу, но, безусловно, сделает ее более увлекательной.