0

我在每个视图控制器(4 个视图)中都有一个带有广告横幅(内部活动)的应用程序,并且在我的应用程序运行 2-3-4 分钟后我不断收到此错误:

'NSRangeException', reason: '*** -[__NSCFString substringToIndex:]: Range or index out of bounds'

我的应用程序崩溃了,我找不到解决方案,但我确定这与我的广告横幅问题有关,当我评论广告横幅代码时,一切正常。我可以假设它发生在横幅上加载新请求时。
这是我用于广告横幅的代码:

.h 文件:

@property (nonatomic, retain) UIView *adBanner;

.m 文件:
是否为我需要的东西合成和导入,然后:

- (void)viewWillAppear:(BOOL)animated
{    
    CGRect frame = CGRectMake(0, 430, 320, 50);
    self.adBanner = [[UIView alloc] initWithFrame:frame];   
    [self.view addSubview:self.adBanner];

    // Display ad
    if (![InneractiveAd DisplayAd:@"iOS_Test" withType:IaAdType_Banner withRoot:adBanner withReload:60 withParams:optionalParams])
    {
        adBanner.hidden = YES;
    }
}

这是我的 AppDelegate (不知道为什么,但也许它也与此有关?):

.h 文件:

#import <UIKit/UIKit.h>

@class RootViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, strong) RootViewController *rootViewController;

@end

.m 文件:

#import "AppDelegate.h"
#import "RootViewController.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize rootViewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.

    self.rootViewController = [[RootViewController alloc] initWithNibName:nil bundle:NULL];
    [self.window addSubview:self.rootViewController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

我真的不明白它可能是什么以及它与 NSCFString 的关系:\
谢谢。

4

1 回答 1

1

不确定你是否得到了答案,但是当没有互联网连接时,我用这行代码得到了答案。

NSString *value = [serverOutput substringWithRange:NSMakeRange(2, [serverOutput length] - 2 * 2)];

我必须通过检查互联网连接和 if then 语句来保护它

于 2012-11-15T01:24:44.493 回答