Не совсем аналогична, до сих пор выходят обновления для iPhone3GS, вышедшего в июне 2009. С тех пор было уже 3 новых «топ» аппарата. www.iossupportmatrix.com
Дело не столько в emoj, можно от многих мультибайтных utf code point отрезать конец, и передав в notification, закрешить SpringBoard. substringToIndex: в общем случае не безопасна для utf.
AudioUnit дает минимальную задержку в любом случае, им так же можно микшировать несколько каналов и применять эквалайзер к каждому из каналов. Если нужно 3D позиционирование источников звука — то OpenAL проще. Не уверен правда насчет масштабируемости этих API на 10ки каналов на iOS. Насчет библиотек не подскажу, выше упоминали fmod, но использовать его не приходилось.
На iOS это практически наверняка обертка над AudioUnit. Не думаю, что Apple пустил их на уровень драйверов и системных сервисов. К тому же у VoIP приложений специфика немного другая, чем у игр либо музыкальных приложений. Много каналов микшировать не нужно, обработка идет в основном на 16kHz. Упор больше на алгоритмы компрессий, компенсации задержек, шумо и эхо-подавление.
Основная задача была получать и проигрывать звук как можно ближе к железу, а так же оценивать задержку, которая при этом возникает. Поэтому от дополнительных промежуточных библиотек особой пользы не было бы. При работе с системным API напрямую больше контроля и проще решать проблемы, связанные, например, с различиями в работе на разных устройствах и версиях iOS.
К вопросу о примерах такой конструкции в других языках. Objective C: - (void)someMethod:(id <UIAlertViewDelegate, UITableViewDataSource, BaseTVCProtocol>)obj;
Метод, принимающий агрумент любого типа реализующего 3 интерфейса:UIAlertViewDelegate, UITableViewDataSource, BaseTVCProtocol.
Официального способа сделать это нет, про особонности работы с jailbreaked-девайсами не подскажу, приходилось писать только приложения для appstore. Думаю все, что нужно для использования камеры в фоновом режиме можно подсмотреть в исходниках iphone-backgrounder.
Если перетянуть папку на окно терминала, то в терминал вставится полный путь этой папки.
- (void)someMethod:(id <UIAlertViewDelegate, UITableViewDataSource, BaseTVCProtocol>)obj;
Метод, принимающий агрумент любого типа реализующего 3 интерфейса:UIAlertViewDelegate, UITableViewDataSource, BaseTVCProtocol.