2013-11-07 2 views
2

В моем образце приложения он показывает ошибку SIGPIPE даже если я игнорировал этот сигнал на мой файл main.mSIGPIPE на IOS 6.0 даже при игнорировании SIGPIPE сигнал

#import <UIKit/UIKit.h> 

#import "AppDelegate.h" 

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     signal(SIGPIPE, SIG_IGN); 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 

задний след БГД является

#0 0x38579eb4 in mach_msg_trap() 
#1 0x3857a04c in mach_msg() 
#2 0x3605b044 in __CFRunLoopServiceMachPort() 
#3 0x36059d5e in __CFRunLoopRun() 
#4 0x35fccebc in CFRunLoopRunSpecific() 
#5 0x35fccd48 in CFRunLoopRunInMode() 
#6 0x328cf2ea in GSEventRunModal() 
#7 0x32939300 in UIApplicationMain() 
#8 0x000b6c52 in main (argc=1, argv=0x2fd4bc40) at /Users/bdsu/Desktop/Git_repo/VoipApp_iOS/VoipApp_iOS/main.m:17 

Когда я перехожу в режим ожидания и вернусь, возникает эта ошибка. Я тестировал его на IPAD с помощью IOS 6.0. Версия Xcode - 4.5/5.0.

ответ

2

Моим приложениям необходимо подключение к интернету, пока оно находится на заднем плане. Но не все приложения получают разрешение на запуск на фоне. Вы должны установить фоновый режим приложения для включения приложения, а также некоторые другие параметры, позволяющие ему запускаться на фоне. Также по умолчанию IOS приостанавливает все приложения через 10 минут на фоне и сокет закрывается, что приводит к ошибке sigpipe. Вот почему я написал функцию, которая будет вызываться, когда приложение перейдет на задний план и сохранит приложение. Таким образом, приложение получит подключение к Интернету при работе на фоне и избежит sigpipe.

 Смежные вопросы

  • Нет связанных вопросов^_^