Приложение вылетает при добавлении индикатора активности - PullRequest
0 голосов
/ 07 апреля 2011

Я пишу приложение, и в приложении у меня есть веб-представление, и я хочу добавить индикатор активности. Поэтому я использую этот код:

timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) 
         target:self selector:@selector(loadingPage) userInfo:nil repeats:YES];

Но когда я вставляю этот код, мое приложение вылетает и отсылает меня к этому коду:

main.m

#import <UIKit/UIKit.h>

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

в строке, которая начинается с «int retVal ...», он говорит мне: «Поток 1: Программа получила сигнал:« SIGABRT »». Кстати, этот код, который он мне показывает, не тот, который я написал, он был в проекте Xcode с самого начала.

Итак, мой вопрос: кто-нибудь знает простой способ исправить этот или другой простой способ добавления индикатора активности?

Если кто-то знает лучший способ, напишите код, так как я новичок в разработке приложений и у меня еще есть чему поучиться.

Заранее большое спасибо:)

Вот еще немного кода:

.h файл

@interface Ugeblad : UIViewController {

    // Web View
    IBOutlet UIWebView *faktaPDF;

    // Activity Indicator View
    IBOutlet UIActivityIndicatorView *pageLoadingIndicator;


    NSTimer *timer;

}

@property (nonatomic, retain) IBOutlet UIWebView *faktaPDF;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *pageLoadingIndicator;

@end

.m файл

[faktaPDF addSubview:pageLoadingIndicator];

[faktaPDF loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"Website"]]];

timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(loadingPage) userInfo:nil repeats:YES];

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Не используйте для этого NSTimer, это брутто. Назначьте себя в качестве делегата UIWebView и внедрите

-webViewDidStartLoad:, чтобы представить свой «loadingView» и затем реализовать

-webView:didFinishLoad: и -webView:didFailLoadWithError:, чтобы скрыть ваш «loadingView».

1 голос
/ 07 апреля 2011

Если под индикатором активности вы подразумеваете вращающееся колесо (известное как UIActivityIndicatorView), вам не нужен таймер для него.Он оживляет сам по себе;вам просто нужно поместить его в представление и вызвать [startAnimating].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...