2012-10-11 33 views
2

我是相对较新的编程和我使用Xcode编码一个非常简单的动画。这个类不是密钥编码兼容的关键PerformRotate

这是我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的密码编码。“ *第一掷调用堆栈: (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篡改?

回答

11

检查您的XIB/Storyboard。机会是你的- (IBAction)performRotate:(id)sender方法最初被命名为- (IBAction)PerformRotate:(id)sender,后者是在IB连接的。当您更改方法名称时,必须在XIB/Storyboard中重新连接它,否则它会调用旧的方法,该方法不再存在。

+0

谢谢你这么多我一直在篡改那整天 –

+1

没问题。这是你学习之前需要弄错的那些晦涩难懂的事情之一。请接受我的答案,如果它解决了你的问题。 – yuf

+2

+1好答案! @NikitaJerschow如果解决了这个问题,可以考虑通过点击复选标记的灰色轮廓来接受这个答案。这将告诉其他人您不再寻找改进的解决方案,并为您获得堆栈溢出的全新徽章。 – dasblinkenlight

相关问题