앱을 만들었지 만 ipad 1에서는 끝 부분이 충돌합니다. ipad-higher에서는 계속 작동하지만 여전히 잘못된 일을하고 있다고 생각합니다. 더 경제적으로 뭔가를 만들어야합니다. 그러나 그것은 무엇입니까?ipad 1 크래시 - 내 앱이 어딘가에 있습니다.
결국 모든 일이 발생합니다. 그 전에 여러 개의 스크린이 서로 그리고 시뮬레이터에 놓이게됩니다. 다시 돌아 가면 모두 사라집니다. 하지만 ipad 1에서는 끝 부분까지 도달하지 않습니다. 나는 무슨 일이 일어나고 있는지에 대해 몇 가지 생각을하려고 노력할 것이다.
화면에서 스 와이프하면 망막 이미지 (큰 이미지)가 선택 될 수있는 4 개의 모서리와 각각 다른 이미지 배경으로 바뀝니다. 6 가지 장면이 있으므로 일반 0 상황의 경우 6x4 + 6x1, 큰 망막 이미지의 경우 25 가지가 있습니다. 서로 꼭대기에 5 개의 프레임 (4 개의 모서리와 1 개의 배경)이 있습니다 만, 비활성 물건을 nil로 설정하고 imageNamed를 사용하여 활성 이미지를로드합니다. 그것은 시뮬레이터에서는 잘되지만 ipad 1에서는 충돌이 발생하지 않습니다. 메모리 부족이나 경고가 없습니다.
나는 a) 자동 풀 풀 b) imageNamed를 imageContentsOfFile로 대체했다. autorelease 풀은 효과가 없습니다. imageNamed, imageContentsOfFile이 작동하지 못해서 작업을 건너 뛰었습니다.
너무 과도하게 잘못되었거나 어떤 생각이 더 경제적으로 적용될 수 있는지에 대한 아이디어는 결국 어딘가에 너무 많은 것을 요구합니다. 있는 UIImage imageWithContentsOfFile를 사용
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint tappedPt = [[touches anyObject] locationInView:self.view];
NSArray *subviews = [[NSArray alloc]init];
subviews = [self.view subviews];
// Return if there are no subviews
if ([subviews count] == 0) return;
for (UIView *subview in subviews) {
if ([subview pointInside:[self.view convertPoint:tappedPt toView:subview] withEvent:event]){
[self checkAndChange:subview];
[self modifyChoice:subview];
}
}
}
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
// Get the subviews of the view
CGPoint tappedPt = [[touches anyObject] locationInView:self.view];
NSArray *subviews = [[NSArray alloc]init];
subviews = [self.view subviews];
// Return if there are no subviews
if ([subviews count] == 0) return;
for (UIView *subview in subviews) {
if ([subview pointInside:[self.view convertPoint:tappedPt toView:subview] withEvent:event]){
[self checkAndChange:subview];
[self modifyChoice:subview];
}
}
}
-(void) modifyChoice:(UIView *)subview
{
if(subview==area1LinksBoven){[gekozenExpressieBijDimensie replaceObjectAtIndex:dimensie-1 withObject:[NSNumber numberWithInteger:1]];}
if(subview==area2RechtsBoven){[gekozenExpressieBijDimensie replaceObjectAtIndex:dimensie-1 withObject:[NSNumber numberWithInteger:2]];}
if(subview==area3RechtsOnder){[gekozenExpressieBijDimensie replaceObjectAtIndex:dimensie-1 withObject:[NSNumber numberWithInteger:3]];}
if(subview==area4LinksOnder){[gekozenExpressieBijDimensie replaceObjectAtIndex:dimensie-1 withObject:[NSNumber numberWithInteger:4]];}
if(maxChoice<dimensie){maxChoice=dimensie;
if(maxChoice==1){headerGevuld.image = [UIImage imageNamed:@"TOP1.png"];}
if(maxChoice==2){headerGevuld.image = [UIImage imageNamed:@"TOP2.png"];}
if(maxChoice==3){headerGevuld.image = [UIImage imageNamed:@"TOP3.png"];}
if(maxChoice==4){headerGevuld.image = [UIImage imageNamed:@"TOP4.png"];}
if(maxChoice==5){headerGevuld.image = [UIImage imageNamed:@"TOP5.png"];}
if(maxChoice==6){headerGevuld.image = [UIImage imageNamed:@"TOP6.png"];}
}
}
-(void) checkAndChange:(UIView *)subview{
if(subview==area1LinksBoven){
area1LinksBoven.image = [UIImage imageNamed:@"SELECTION1.png"];
area2RechtsBoven.image = nil;
area3RechtsOnder.image = nil;
area4LinksOnder.image = nil;
footer.image = [UIImage imageNamed:@"FOOT1.png"];
@autoreleasepool {
if(dimensie==1){
filmAchtergrond0.image = [UIImage imageNamed:@"1PassiefActiefOntspanning.jpg"];}
if(dimensie==2){
filmAchtergrond0.image = [UIImage imageNamed:@"1MakkelijkMoeilijkMaster.jpg"];}
if(dimensie==3){
filmAchtergrond0.image = [UIImage imageNamed:@"1VeiligGevaarlijkGeborgenheid.jpg"];}
if(dimensie==4){filmAchtergrond0.image = [UIImage imageNamed:@"1NormaalBijzonderGeaard.jpg"];}
if(dimensie==5){filmAchtergrond0.image = [UIImage imageNamed:@"1AlleenSamenUniek.jpg"];}
if(dimensie==6){filmAchtergrond0.image = [UIImage imageNamed:@"1OrdeChaosDuidelijk.jpg"];}
}
[arrowRight setImage:[UIImage imageNamed:@"ARROW_RIGHT_ACTIVE.png"] forState:UIControlStateNormal];
}
if(subview==area2RechtsBoven){
area1LinksBoven.image = nil;
area2RechtsBoven.image = [UIImage imageNamed:@"SELECTION2.png"];
area3RechtsOnder.image = nil;
area4LinksOnder.image = nil;
footer.image = [UIImage imageNamed:@"FOOT2.png"];
@autoreleasepool {
if(dimensie==1){filmAchtergrond0.image = [UIImage imageNamed:@"2PassiefActiefEnergiek.jpg"];}
if(dimensie==2){
filmAchtergrond0.image = [UIImage imageNamed:@"2MakkelijkMoeilijkUitdagend.jpg"];}
if(dimensie==3){
filmAchtergrond0.image = [UIImage imageNamed:@"2VeiligGevaarlijkSpannend.jpg"];}
if(dimensie==4){filmAchtergrond0.image = [UIImage imageNamed:@"2NormaalBijzonderWow.jpg"];}
if(dimensie==5){filmAchtergrond0.image = [UIImage imageNamed:@"2AlleenSamenGezellig.jpg"];}
if(dimensie==6){filmAchtergrond0.image = [UIImage imageNamed:@"2OrdeChaosImproviseren.jpg"];}
}
[arrowRight setImage:[UIImage imageNamed:@"ARROW_RIGHT_ACTIVE.png"] forState:UIControlStateNormal];
}
if(subview==area3RechtsOnder){
area1LinksBoven.image = nil;
area2RechtsBoven.image = nil;
area3RechtsOnder.image = [UIImage imageNamed:@"SELECTION3.png"];
area4LinksOnder.image = nil;
footer.image = [UIImage imageNamed:@"FOOT3.png"];
@autoreleasepool {
if(dimensie==1){
filmAchtergrond0.image = [UIImage imageNamed:@"3PassiefActiefUitputting.jpg"];}
if(dimensie==2){
filmAchtergrond0.image = [UIImage imageNamed:@"3MakkelijkMoeilijkFrustrerend.jpg"];}
if(dimensie==3){
filmAchtergrond0.image = [UIImage imageNamed:@"3VeiligGevaarlijkGevaarlijk.jpg"];}
if(dimensie==4){
filmAchtergrond0.image = [UIImage imageNamed:@"3NormaalBijzonderOnbegrijjpelijk.jpg"];}
if(dimensie==5){filmAchtergrond0.image = [UIImage imageNamed:@"3AlleenSamenGroepsdruk.jpg"];}
if(dimensie==6){filmAchtergrond0.image = [UIImage imageNamed:@"3OrdeChaosRommeltje.jpg"];}
}
[arrowRight setImage:[UIImage imageNamed:@"ARROW_RIGHT_ACTIVE.png"] forState:UIControlStateNormal];
}
if(subview==area4LinksOnder){
area1LinksBoven.image = nil;
area2RechtsBoven.image = nil;
area3RechtsOnder.image = nil;
area4LinksOnder.image = [UIImage imageNamed:@"SELECTION4.png"];
footer.image = [UIImage imageNamed:@"FOOT4.png"];
@autoreleasepool {
if(dimensie==1){filmAchtergrond0.image = [UIImage imageNamed:@"4PassiefActiefApathie.jpg"];}
if(dimensie==2){filmAchtergrond0.image = [UIImage imageNamed:@"4MakkelijkMoeilijkSaai.jpg"];}
if(dimensie==3){
filmAchtergrond0.image = [UIImage imageNamed:@"4VeiligGevaarlijkBeklemmend.jpg"];}
if(dimensie==4){filmAchtergrond0.image = [UIImage imageNamed:@"4NormaalBijzonderSleur.jpg"];}
if(dimensie==5){filmAchtergrond0.image = [UIImage imageNamed:@"4AlleenSamenEenzaam.jpg"];}
if(dimensie==6){filmAchtergrond0.image = [UIImage imageNamed:@"4OrdeChaosRigide.jpg"];}
}
[arrowRight setImage:[UIImage imageNamed:@"ARROW_RIGHT_ACTIVE.png"] forState:UIControlStateNormal];
}
if(dimensie==1){headerPositie.image = [UIImage imageNamed:@"OUT1.png"];}
if(dimensie==2){headerPositie.image = [UIImage imageNamed:@"OUT2.png"];}
if(dimensie==3){headerPositie.image = [UIImage imageNamed:@"OUT3.png"];}
if(dimensie==4){headerPositie.image = [UIImage imageNamed:@"OUT4.png"];}
if(dimensie==5){headerPositie.image = [UIImage imageNamed:@"OUT5.png"];}
if(dimensie==6){headerPositie.image = [UIImage imageNamed:@"OUT6.png"];}
}
당신은 코드와 오류 메시지를 표시해야합니다 :
여기
imageNamed
와imageWithContentsOfFile
의 차이를 참조하십시오. iPad 1은 iPad 2의 절반의 RAM을 가지고 있으며 너무 느려서 느껴집니다. 당신은 그것에 대한지지를 떨어 뜨리는 것을 고려할 것입니다. – wozXcode와 연결된 iPad 1로 앱을 실행하고 예외 중단 점을 설정해야합니다. 이렇게하면 충돌하는 이유를 파악하는 데 도움이됩니다. –
woz, 나는 6.1을 목표로하고 ipad 1이 아니다. 그러나 나 자신이 하나 있고 앱을 테스트하기 위해, 나는 그것을해야만한다. 그렇기 때문에, 나는 그것이 ipad에서 건전함의 증거로 일하도록하는 것을 선호합니다. 사실 쉽게 사용할 수있을지라도 더 많은 RAM에 의지하고 싶지 않습니다. 사실 내 디자인이 충분히 차분하지 않고 더 혁신적이거나 경제적으로 고정 될 수 있습니다. 이것은 기술 문화가 더 많은 RAM에 기대어 있지만 대개 덜하는 문화와 결국 코딩을 개선하는 방법을 배울수록 효과적이라는 것을 증명할 수 있기 때문에 높아지고 있습니다. 미국 대 80 년대 러시아? – Pip