添加活动指示器时,应用程序崩溃

时间:2011-04-07 19:32:36

标签: iphone objective-c xcode

我正在编写一个应用程序并且在应用程序中我有一个Web视图,我想添加一个活动指示器。所以我使用这段代码:

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 个答案:

答案 0 :(得分:1)

如果通过活动指示器表示旋转轮(称为UIActivityIndi​​catorView),则不需要计时器。它自己动画;你只需将它放在视图上并调用[startAnimating]。

答案 1 :(得分:1)

不要使用NSTimer,这很糟糕。将自己指定为UIWebView的委托并实现

-webViewDidStartLoad:展示你的“loadingView”,然后实现

-webView:didFinishLoad:-webView:didFailLoadWithError:隐藏“loadingView”。