2

我对编程比较陌生,我正在使用 Xcode 编写一个非常简单的动画。

这是我的BuildingViewController.h

#import <UIKit/UIKit.h>

@interface BuildingViewController : UIViewController {

}
@property (nonatomic, retain) IBOutlet UIButton * buttonTarget;

- (IBAction)performRotate:(id)sender;
//- (void)setValue:(id)value forKey:(NSString *)performRotate;

@end

这是我的 BuildingViewController.m

import "BuildingViewController.h"

@interface BuildingViewController ()

@end

@implementation BuildingViewController

//@synthesize image;


- (void)viewDidLoad
{
//    [image setAlpha:0];
//  [self startAnimation];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)performRotate:(id)sender {

    [UIView animateWithDuration:1.0 animations:^{
    CGAffineTransform previousTransformation = self.buttonTarget.transform;
    CGAffineTransform newRotationTransformation = CGAffineTransformMakeRotation(90.0f * (M_PI / 180.0f));
    CGAffineTransform newTransformation = CGAffineTransformConcat(previousTransformation, newRotationTransformation);
    self.buttonTarget.transform = newTransformation;
}];

}

@end

我得到的错误如下所示:

2012-10-11 10:08:47.676 graphics1[27608:c07] * 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合键值编码的键 PerformRotate 。* First throw call stack: (0x1c8e012 0x10cbe7e 0x1d16fb1 0xb78711 0xaf9ec8 0xaf99b7 0xb24428 0x2300cc 0x10df663 0x1c8945a 0x22ebcf 0xf3e37 0xf4418 0xf4648 0xf4882 0x43a25 0x43dbf 0x43f55 0x4cf67 0x10fcc 0x11fab 0x23315 0x2424b 0x15cf8 0x1be9df9 0x1be9ad0 0x1c03bf5 0x1c03962 0x1c34bb6 0x1c33f44 0x1c33e1b 0x117da 0x1365c 0x259d 0x24c5) libc++abi.dylib:终止称为抛出异常

我是否必须篡改BuildingAppDelegate.h.m

4

1 回答 1

11

检查您的 XIB/故事板。很有可能您的- (IBAction)performRotate:(id)sender方法最初是命名- (IBAction)PerformRotate:(id)sender的,而后一种方法是在 IB 中连接的。当您更改方法名称时,您必须在 XIB/Storyboard 中重新连接它,否则它将调用您不再存在的旧方法。

于 2012-10-11T18:13:18.603 回答