2014-12-06 1 views
0

xcode의 page-based 프로젝트에 새 페이지를 추가하려는 경우 DataViewController이 전체 화면을 차지하므로 RootVC에 아무 버튼도 추가 할 수 없습니다.UIPageViewController에서 새 페이지를 추가하려고 할 때

: 예외가 바로 여기에 1.1

중단

스레드 1, 코드 말한다 이유는 DataVCIBAction을 추가 할 때, 충돌이, 이해가 안 돼요

//in DataVC, not sure if it is ok to create the DataVC inside itself 
- (IBAction)addOne:(id)sender { 
    DataViewController *dvc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"DataViewController"]; 
    [[ModelController sharedModelController] addOneToModel:dvc]; 
} 

//in ModelController 
-(void) addOneToModel:(DataViewController*)dvc{ 
    [self.pageData addObject:dvc];//ERROR HERE: not much details : "thread 1, breakpoint 1.1" 
} 

//the sharedMOdelController 
+(instancetype)sharedModelController{ 
    static dispatch_once_t once; 
    static ModelController *sharedInstance; 
    dispatch_once(&once, ^{ 
     sharedInstance = [[ModelController alloc] init]; 
    }); 
    return sharedInstance; 
} 
+0

어떻게 pageViewController를 사용합니까, 어떻게 viewControllers 속성을 설정합니까, 어떻게 데이터 소스를 사용합니까, 일부 소스 코드를 넣을 수 있습니까? 넣은 코드에는 흥미로운 것이 없습니다. – Sandeep

+0

감사합니다. @ insane-36은 xcode를 기반으로 새 페이지를 만들 때 제공되는 프로젝트였습니다. 위의 코드를 추가하기 만하면되지만, 가변 배열의 경우 "copy"대신 "mutableCopy"를 사용해야합니다. 고맙습니다. 어쨌든 – Paul

답변

0

당신은 더 많은 탐정 작업을해야 할 것입니다. 새로 생성 된 DataViewController를 로그하여 이것이 nil이 아닌지 확인하고 그것이 생각하는 종류의 객체입니다.

해당 줄에 중단 점이있어 볼 수없는 경우도 있습니다. Xcode IDE와 디버거 명령 줄은 별도의 중단 점 목록을 유지하며 IDE에서 중단 점이 사라지는 것을 보았지만 여전히 디버거 명령 줄에 표시됩니다. 계속 해봤습니까?

또한 모든 중단 점을 비활성화하고 어떤 일이 발생하는지 볼 수 있습니다.

모든 Objective-C 예외에 대해 예외 중단 점을 추가 할 수도 있습니다. 때로는 예외가 발생할 때 더 많은 정보를 제공합니다.

+0

Duncan에게 감사드립니다. 배열을 mutableArray에 복사 할 때 문제가 발생했다는 것을 알았습니다. 프로젝트에서 기본적으로 생성 한 pageData 변수에 "mutableCopy"를 사용해야합니다. 그래서, 괜찮 으면 다른 질문이 있습니다. "12 월"(프로젝트는 xcode에서 페이지 기반 프로젝트를 만들 때 제공되는 프로젝트입니다) 페이지에 도달하면 새 페이지를 모델에서 pageViewController는 12 월에 중단됩니다. 이유를 아시겠습니까? 이 프로젝트는 pageData에 "count"를 사용하여 페이지 수를 알기 때문에 pagedata 안에 새로운 항목을 추가했습니다 ... – Paul

관련 문제