Игнорирование SIGPIPE не работает iOS

Мое приложение возвращает ошибку signal 13: Broken pipe: 13, и причина, вероятно, заключается в проблеме на стороне сервера. Я пытаюсь игнорировать SIGPipes в своем приложении, чтобы проверить, работает ли оно, однако xcode не позволяет мне это сделать. Он просто продолжает давать sigpipes.

Я добавил следующее:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // We expect write failures to occur but we want to handle them where
    // the error occurs rather than in a SIGPIPE handler.
    signal(SIGPIPE, SIG_IGN);
}

К сожалению, это совсем не помогает, и приложение все равно зависает. Что мне здесь не хватает?


person Timothy    schedule 28.06.2013    source источник
comment
Вам также нужно обрабатывать ошибки чтения/записи сокета из того, что я прочитал.   -  person borrrden    schedule 28.06.2013


Ответы (1)


Хорошо, через пару дней я узнал, что signal 13 sigPIPE был исправлен, и вместо этого он возвращал сигнал 9, что означает нехватку памяти. Это была проблема не с моим приложением, а с памятью устройства, поскольку другие приложения тоже возвращали это.

person Timothy    schedule 28.06.2013