"- [NSMutableArray insertObject: atIndex:]: попытка вставить нулевой объект в 0 '"
Если я использую жестко закодированный путь («путь» в коде), он добавляет изображение правильно. когда я получаю тот же URL из RSS-канала, он не работает (ошибка выше).
Я попытался проверить URL с помощью простой проверки на равенство, и это указывает на то, что они не равны, хотя в выводе отладчика они выглядят так.
Любое понимание управления памятью также будет полезно. Я пришел из мира работы с Flash и нуб к xcode (извините). Я знаю, что мне нужно перестать думать об управлении памятью как о запоздалой мысли ...
-
- (void)viewDidLoad
{
[super viewDidLoad];
[self prepareGalleryLoad]; //sets up coverflow, waiting for data
NSString *xmlpath = @"http://mydomain.com/gallery3/index.php/rss/feed/gallery/album/12";
xmlreader = [[XMLReader alloc] init];
[xmlreader parseXMLFileAtURL:xmlpath];
NSMutableArray *imagearray = [[NSMutableArray alloc]init]; //array of images
NSMutableArray *imagearraycaptions = [[NSMutableArray alloc]init]; //array of captions for images
NSString *path;
NSString *pathfromrss;
UIImage *tempimage;
for (int y = 0; y < [xmlreader.stories count]; y++){
[imagearraycaptions addObject:[[xmlreader.stories objectAtIndex:y] objectForKey:@"title"]];
path = @"http://mydomain.com/gallery3/var/resizes/College-of-Nursing-and-Health-Studies/health10.jpg?m=1299713266";
pathfromrss = [NSString stringWithFormat:@"%@",[[xmlreader.stories objectAtIndex:y] objectForKey:@"link"]];
//DIAGNOSTIC check of path vs path temp.
if (path == pathfromrss){
NSLog(@"path is equal");
}else{
NSLog(@"path is not equal");
NSLog(@"%@",path);
NSLog(@"%@",pathfromrss);
}
//END DIAGNOSTIC path check
tempimage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:path]]];
//tempimage is NIL when using "pathfromrss", works fine with "path"
if(tempimage){
[imagearray addObject:tempimage];
}
}
coverstext = imagearraycaptions; //coverflow uses this
covers = imagearray; //coverflow uses this
[self finishGalleryLoad];
}