2012-08-31 3 views
4

iPhone 시뮬레이터에 이전에 설치되지 않은 새로운 앱이므로 앱이 정상적으로 부팅됩니다. 그런 다음 홈 버튼을 누르고 아이콘을 클릭하면됩니다. 그런 다음 홈 버튼을 누른 다음 멀티 태스킹 막대에서 앱을 닫은 다음 아이콘에 SIGKILL 오류가 표시됩니다.iPhone Sim에서 앱 실행시 SIGKILL 신호가 표시되지만 Xcode가 아닙니다.

그러나 Xcode에서 run을 누르면 언제나 완벽하게 작동합니다 (아이콘을 누르지 않은 멀티 태스킹 막대에서 닫은 후에도). 이것은 시뮬레이터의 단점입니까? 이 동작은 NSUserDefault 물건을 구현 한 후에 만 ​​시작됩니다. NSUserDefault 물건은 상태 등을 기억하기 위해 시작되었습니다. 작동 할 때 모든 기본값을 기억합니다.

도움을 주시면 감사하겠습니다.

편집 :

여기
- (void)viewDidLoad 
{ 

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: 
           [NSNumber numberWithInt:1], @"firstRun", 
         nil]; 
[defaults registerDefaults:appDefaults]; 
if ([[defaults objectForKey:@"firstRun"] intValue] == 1) { 
//do the stuff required at first launch 
table = [NSMutableArray array]; 
Stocks =[NSMutableArray array]; 
Money =1234.56; 
[email protected]"GOOG"; 
[defaults setDouble:Money forKey:@"money"]; 
[defaults setObject:mem forKey:@"ticker"]; 
[defaults synchronize]; 
self.Input.text=mem; 


- (void)viewWillAppear:(BOOL)animated 
{ 

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
if ([[defaults objectForKey:@"firstRun"] intValue] == 0) { 
    [self entered:nil]; 

} else if ([[defaults objectForKey:@"firstRun"] intValue]== 1){ 
    [defaults setObject:[NSNumber numberWithInt:0] forKey:@"firstRun"]; 
    [defaults synchronize]; 
} 
[super viewWillAppear:animated]; 
} 

내가 내 MainViewController에서 relavent에 대한 NSUserDefaults (I 다른의 ViewController에서 UserDefaults을 사용하지 않음) 할 수있다 생각합니다.

몇 가지 다른 방법으로 몇 가지 setObjects/synchronizes를 수행하지만 버튼을 클릭 할 때만 실행됩니다 (충돌 할 때 발생하지 않음).

+0

더 이상의 오류 로그? –

+0

나는 그것을 확인했다. 그것이 말한 전부는 : 프로세스 1196에 붙이기. [프로세스 1196 스레드 0x11903으로 전환] –

+0

참으로 이상합니다. 그 동안에 +1. –

답변

3

멀티 태스킹 막대에서 응용 프로그램을 제거하면 실제로 응용 프로그램이 완전히 닫힙니다. 따라서 인스턴스 (모든 프로세스가 죽게 됨)를 파괴합니다.이 프로세스는 앱과 관련된 Xcode입니다. 그래서 SIGKILL 오류가 발생합니다. 아이폰 시뮬레이터에

더 : 응용 프로그램이 엑스 코드에 연결되어있는 동안 당신이 실제 장치에서 응용 프로그램을 실행하고 멀티 태스킹 바에서 삭제 된 경우이도 일어날 것 사실 http://developer.apple.com/library/ios/#DOCUMENTATION/Xcode/Conceptual/ios_development_workflow/25-Using_iOS_Simulator/ios_simulator_application.html

. 그러나 응용 프로그램이 장치에 설치되어 있고 실행/테스트/프로파일 링을 위해 Xcode에 연결되어 있지 않으면 문제가 발생하지 않습니다.

+0

고마워요! objective-c에서 Xcode의 stop 버튼을 어떻게 시뮬레이션 할 수 있습니까? 이러한 코드가 있다면 'applicationWillTerminate'메서드에서 속도를 조절할 수 있습니다. –

+0

@ GregCawthorne : 나는이 질문이 귀하의 질문을 해결할 수 있다고 생각합니다. http://stackoverflow.com/questions/3097244/exit-application-in-ios-4-0 – mvb

+0

또한 Xcode 중지 버튼은 연결을 중지하기위한 것입니다. 시뮬레이터/장치와 Xcode 사이. 응용 프로그램이 충돌 할 때 보이지 않는 상황에 대해 applicationWillTerminate 메서드를 명확하게 사용자 지정할 수는 있지만. – mvb

관련 문제