簡體   English   中英

ipad 1崩潰-我的應用在某處不好

[英]ipad 1 Crash - my app is bad somewhere

我已經制作了一個應用程序,但是在ipad 1上它最終崩潰了。 在更高版本的ipad上,它仍然可以工作,但是我仍然認為我做錯了什么,我確實需要使某些工作更經濟。 那是什么

最后,這一切都發生了。 在此之前,將幾個屏幕放在一起,當您返回時在模擬器中將其全部關閉。 但是在ipad 1上,您甚至都無法到達末尾部分的末端。 我將嘗試解釋發生了什么,以及關於發生的事情的一些想法。

您可以在屏幕上滑動,然后將視網膜圖像(大圖像)與可以選擇的四個角進行交換,每個角都有不同的圖像背景。 有六個不同的場景,因此對於正常0位置有6x4 + 6x1,有25個大視網膜圖像。 只有5幀相互疊加(4個角和1個背景),但是我將非活動內容設置為nil並使用imageNamed加載活動圖像。 它在模擬器上運行良好,但在ipad 1上崩潰,沒有低內存警告或其他任何警告。

我研究了改進:a)自動釋放池b)imageNames被imageContentsOfFile取代。 自動釋放池沒有任何作用。 imageNamed,我無法使imageContentsOfFile工作,所以我跳過了該操作。

關於什么是太過錯誤的想法,以及可以應用哪種想法使它更經濟地運行,因為最終某個地方對它的要求太高了。

- (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"];}
}

使用UIImage imageWithContentsOfFile加載圖像:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"fileExtension"]; 
UIImage *img = [UIImage imageWithContentsOfFile:filePath];

此處查看imageNamedimageWithContentsOfFile之間的區別:
http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM