سؤال

لدي طبقة في لعبتي. عند الانتهاء من اللعبة أريد إظهار المستخدم uialertview لإعادة تشغيل اللعبة أو الإقلاع عنها. لكن هذا لا يعمل. أنا أيضا منحت المندوب uialertviewdelegate إلى الطبقة.

أي حلول؟

يتبع التعليمات البرمجية الخاصة بي،

-(void)gameFinished{
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];

    [self unschedule:@selector(checkForCollision)];
    [self unschedule:@selector(dropObject)];
    [self stopBackgroundMusic];

    [self startNewForegroundMusic:@"GameOver" ofType:@"caf"];
    [self playForegroundMusic];

    [[Director sharedDirector] pause];
    UIAlertView *view=[[UIAlertView alloc] initWithTitle:@"Game Finished" message:@"Want to play again?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes"];
    [view show];
    [view release];
} 
هل كانت مفيدة؟

المحلول

هل تعطل الكود الخاص بك، أو هل لا يعرض فقط؟

لديك خطأ بسيط في الخط

[[UIAlertView alloc] initWithTitle:@"Game Finished"
                     message:@"Want to play again?"
                     delegate:self cancelButtonTitle:@"No"
                     otherButtonTitles:@"Yes"]

هذا ينبغي أن يكون

[[UIAlertView alloc] initWithTitle:@"Game Finished"
                     message:@"Want to play again?"
                     delegate:self cancelButtonTitle:@"No"
                     otherButtonTitles:@"Yes", Nil]

ملاحظة: المعلمة الأخيرة هي وسيطة متغيرة، وبالتالي يجب أن تكون غير مذكورة.

نصائح أخرى

حاول إظهار AlertView قبل إيقاف المدير مؤقتا، فقد تعمل ..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top