надеюсь, кто-нибудь сможет мне помочь. У меня есть UIScrollView на моей странице. .H файл установил UIscrollviewdelegate.
У меня есть файл класса с именем "Picture.h / Picture.m".
- (id)initWithName:(NSString *)aName filename:(NSString *)aFilename {
self.name = aName;
self.filename = aFilename;
return self;
}
В этом файле класса я просто установил пару строк. Я загружаю массив с объектом этого класса изображения, например
Picture *image2 = [[Picture alloc] initWithName:@"Apple" filename:@"apple.png"];
[pictureArray addObject: image2];
[image2 release];
В моем viewController я вызываю этот класс и присваиваю его как таковое
Picture *thisPicture = (Picture *)[appDelegate.pictureArray objectAtIndex:0];
view2image.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@", thisPicture.filename]];
Выше работает нормально. Изображение настроено на то, что я когда-либо ставлю, например, «apple.png». Однако, когда я пытался установить это в методе - (void) scrollViewDidScroll:(UIScrollView *)
в моем viewController, я получаю ошибку exec, и приложение вылетает.
Тем не менее, если у меня был массив имен файлов (поэтому я не сохранял свой объект класса в массиве) и доступ к objectAtIndex: 0 в scrollViewDidScroll - он работает нормально.
Итак, этот код в порядке.
nextImageView.image = [UIImage imageNamed: [NSString stringWithFormat:@"%@", [appDelegate.pictureCardsArray objectAtIndex:0]]];
но это вылетает
Picture *image3 = (Picture *)[appDelegate.pictureArray objectAtIndex:0];
nextImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@", image3.filename]];
Интересно, что если я не пытаюсь получить доступ к элементу image3 (например, image3.filename), он не падает. Это бесполезно, хотя! Кроме того, если я отключаю делегат = self для uiscrollview, то этот код работает, но не выполняется ни одно из действий прокрутки. Я сталкивался с этим сообщением (/1147936/uiscrollview-na-uiviewcontroller) при поиске решения, но не вижу, где я мог бы выпустить viewController раньше. На всякий случай, ничего не выпускается (пока!)
Надеюсь, кто-то сможет пролить свет на это !!
[edit] Просто добавляю полные файлы классов] [/ edit]
Picture.h
#import <UIKit/UIKit.h>
@interface Picture : NSObject {
NSString *name;
NSString *filename;
}
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *filename;
- (id)initWithName:(NSString *)aName filename:(NSString *)aFilename;
@end
Picture.m
#import "Picture.h"
@implementation Picture
@synthesize name, filename;
- (id)initWithName:(NSString *)aName filename:(NSString *)aFilename {
self.name = aName;
self.filename = aFilename;
return self;
}
@end