范围或索引越界(应用程序崩溃)

时间:2012-05-18 06:17:41

标签: xcode ads banner bounds nscfstring

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

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

我的应用程序正在崩溃&我无法找到解决方案,但我肯定知道,当我评论广告横幅代码一切正常时,我的广告横幅问题是谨慎的。我可以假设它是在横幅上加载新请求时发生的 这是我用于AD横幅的代码:

.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有什么关系:\
感谢。

1 个答案:

答案 0 :(得分:1)

不确定你是否得到了答案,但是在没有互联网连接的情况下我得到了这行代码。

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

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