我的公司领主希望我为即将推出的iPad应用程序显示图片广告。我目前正在尝试使用以下代码显示图像:
- (UIImage *)getAdImage:(NSString *)adName {
NSString *adID = [self getPrivateConfigSettings:adName];
NSString *adUrl =
[NSString stringWithFormat:[self getPrivateConfigSettings:@"eplanningURL"],
[self getPrivateConfigSettings:@"eplanningSite"], adID];
NSData *theData =
[NSData dataWithContentsOfURL:[NSURL URLWithString:adUrl]];
return [UIImage imageWithData: theData];
}
目前,它抛出了以下异常:
Terminating app due to uncaught exception 'NSRangeException', reason:
'*** -[NSCFArray objectAtIndex:]: index (-1( or possibly larger))
beyond bounds (0)'
在我创建“theData”的行中。
但是,当我检查我正在加载的网址(http://ads.us.e-planning.net/eb/3/9770/19e905cdc35ec591?o=i)时,它上面有数据。
PD:我知道代码漏了!现在我只想找到我的错误的原因;)答案 0 :(得分:2)
尝试手动设置您的网址,如下所示:
- (UIImage *)getAdImage:(NSString *)adName {
NSString *adUrl = @"http://ads.us.e-planning.net/eb/3/9770/19e905cdc35ec591?o=i";
NSData *theData =
[NSData dataWithContentsOfURL:[NSURL URLWithString:adUrl]];
return [UIImage imageWithData: theData];
}
如果工作正常,则问题在于从getPrivateConfigSettings中检索正确的URL。
答案 1 :(得分:0)
事实证明,我在一个单独的线程中有这个(因此我可以在下载信息时更新UI)并且问题出在另一个线程中。奇怪的是,当我加载'theData'对象时它总是崩溃。到目前为止,我不知道为什么另一个线程会在那个特定的时刻崩溃,但由于我的时间紧迫而我的问题已经解决了,我只是想放弃这个。也许稍后我会重新审视并提供正确的解释。