:无法识别的select器发送到实例SIGABRT
我有这个代码试图在一个循环中运行一组简单的图像。 所有我在应用程序中是一个UIImageView在我的视图控制器的.h文件中声明:
@property (strong, nonatomic) IBOutlet UIImageView *imageDisplay;
以下在我的.m文件的viewDidLoad方法中:
NSMutableArray *imageView = [[NSMutableArray alloc] init]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim1.png"]]]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim2.png"]]]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim3.png"]]]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim4.png"]]]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim5.png"]]]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim6.png"]]]; [imageView addObject:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"EyeAnim7.png"]]]; imageDisplay.animationImages = imageView; imageDisplay.animationDuration = 0.25; imageDisplay.animationRepeatCount = 50; [imageDisplay startAnimating];
代码似乎崩溃了“imageDisplay.animationImages”行,就像我创build的UIImageView,创build它的getter和setter,并build立,这是没事,直到我取消注释该行。 如果我取消注释,它会一直给我错误,直到我删除UIImageView并创build一个新的。
不太确定发生了什么事,任何帮助表示赞赏!
animationImages数组必须只包含UIImage对象。 你的数组包含UIImageView对象。
此外,你的代码是不安全的 – 如果其中一个资源不存在,应用程序将崩溃(试图将无对象添加到可变数组)。 这将是更安全的:
#define kNumberOfImages 7 NSMutableArray *imageView = [[NSMutableArray alloc] init]; for(NSUInteger i = 1; i <= kNumberOfImages; i++) { UIImage *anImage = [UIImage imageNamed:[NSString stringWithFormat:@"EyeAnim%d", i]]; if(anImage) { [imageView addObject:anImage]; } } self.imageDisplay.animationImages = imageView; self.imageDisplay.animationDuration = 0.25; self.imageDisplay.animationRepeatCount = 50; [self.imageDisplay startAnimating];
我是非常新的Objective-C,我也得到了这个错误,但出于不同的原因。 我只想把我的解决scheme发布给任何可能正在挣扎的人。
所以基本上我有一个名为ImagesDetailViewController的自定义类,它从UIViewControllerinheritance,并有一个图像属性。
@interface ImagesDetailViewController : UIViewController @property (strong, nonatomic) UIImage *image; @end
然后,我把我的课程连接到我的故事板上的UIImageView
@interface ImagesDetailViewController () @property (nonatomic, weak) IBOutlet UIImageView *imageView; @end
在我的viewDidLoad方法中,我试图为我的图像视图设置图像,得到上面提到的错误(我的图像variables被prepareForSegue方法初始化)
- (void)viewDidLoad { [super viewDidLoad]; [self.imageView setImage:self.image]; }
所以我被迷惑了,因为我敢打赌你也是。 问题与故事板有关。 点击我的UIImageView,然后导航到Connections Inspector,我创build了2个引用sockets(oops …),其中一个指向一个名为image的variables。 所以当程序运行时[self.imageView setImage:self.image] self.image实际上是UIImageView的一个实例,而不是UIImage。
- Cordova插件仅在iOS第二次使用THREAD WARNING打开时才起作用。 你如何获得插件来初始化onload?
- 在编辑模式下更改UITableView中的减号位置
- iOS /移动Safari浏览器仍然放大,而视口设置为用户可伸缩=否? 检查辅助function设置!
- 如何在Swift 2单元格中删除项目后重新加载tableview
- 谷歌反向地理编码并不总是返回一个street_address
- 添加SKScene到UIViewController?
- 如何在UITableView的辅助视图中添加多个button?
- Xcode 6:在Fabric Crashlytics更新后找不到’Answers.h’文件
- iOS11自定义导航栏高度