Я новичок в obj-c, поэтому я не могу понять некоторые из этих логики.Я хочу понять мой код и логику приложения.Мое приложение представляет собой модификацию простого примера с анимацией UIImageView: это .h (в стандартном шаблоне, основанном на представлении)
#import <UIKit/UIKit.h>
@interface ImageAnimatorViewController : UIViewController {
UIImageView *animImage;
}
@property (nonatomic, retain) IBOutlet UIImageView *animImage;
- (IBAction)startAnimation;
- (NSArray*)creatAnimation:(NSString*)fileName;
@end
это .m (без стандартных dealloc и viewDidUnload)
@synthesize animImage;
- (IBAction)startAnimation{
[animImage startAnimating];
}
- (void)viewDidLoad{
[super viewDidLoad];
animImage.animationImages = [self creatAnimation:@"Images.jpg"];
animImage.animationDuration = 1.0f;
animImage.animationRepeatCount = 0;
}
- (NSArray*)creatAnimation:(NSString*)fileName{
UIImage *image = [UIImage imageNamed:fileName];
NSMutableArray *animationImages = [NSMutableArray array];
for (int i = 0; i<8; i++) {
CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage,
CGRectMake(i*600.0f, 0.0f, 600.0f, 262.0f));
UIImage *animationImage = [UIImage imageWithCGImage:imageRef];
[animationImages addObject:animationImage];
[animationImage release];
}
return animationImages;
}
Также у меня есть xib с изображением и кнопкой, но когда я нажал b, в консоли произошел сбой и EXC_BAD_ACCESS.В IBAction я понимаю, что imageView не имеет animationImages, но почему?и имеет странный счетчик ссылок = 3, потому что в viewDidLoad есть 2 (и почему 2?).Я добавляю self и self-> prefix в viewDidLoad, но это не результат.animationImages является свойством (копировать), поэтому изображения сохраняются после того, как пул автоматического выпуска сливается с animationImages.Я очень удивлен таким поведением app.10x!