我的公司總監希望我爲即將推出的iPad應用程序顯示圖像廣告。我目前正試圖通過使用下面的代碼來顯示圖像:iPad - dataWithContentsOfURL在加載具有數據的URL時拋出NSRangeException
- (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)'
在創建「海圖」行
。
但是,當我檢查我正在加載的URL(http://ads.us.e-planning.net/eb/3/9770/19e905cdc35ec591?o=i)時,它上面有數據。
PD:我知道代碼是漏水的!現在我只想找到我的錯誤的原因;)
你的代碼實際上並不泄漏。你創建的所有對象都是自動釋放的(假設你的'-getPrivateConfigSettings:'方法遵循正常的內存管理規則)。 – 2010-10-30 00:19:17
對不起,你確定錯誤是在NSData創建中,而不是在NSString * adUrl中?也許我錯了,但你的錯誤似乎與NSArray而不是NSData有關。 – pasine 2010-10-30 00:25:14
我假設你檢查了'adUrl'是否有正確的字符串? – 2010-10-30 00:45:22