【发布时间】:2014-02-09 03:26:48
【问题描述】:
我之前创建了一个按钮为IBAction,并将其命名为“hi”。我从 .h 和 .m 文件中手动删除了代码,并从情节提要中删除了按钮,现在我收到以下错误:
2014-02-08 18:31:53.135 MadLibs2[7645:70b] * 由于应用程序终止 未捕获的异常“NSUnknownKeyException”,原因: '[setValue:forUndefinedKey:]: 这个类 不符合键 hi 的键值编码。'
如何删除“hi”引用?
// JBViewController.h
// MadLibs2
#import <UIKit/UIKit.h>
@interface JBViewController : UIViewController
// Properties manage an object's internal data
//// A properties data is stored in an instance variable or ivar (e.g., *sliderLabel)
// The property accesses ivars via getter/setter methods (aka accessors)
// put @property in front of the declaration of the ivar
// We access properties using the self keyword
@property (weak, nonatomic) IBOutlet UILabel *sliderLabel;
- (IBAction)sliderChanged:(id)sender;
- (IBAction)toggleShowHide:(id)sender;
@property (weak, nonatomic) IBOutlet UIView *settingsView;
@property (weak, nonatomic) IBOutlet UISwitch *endingSwitch;
@property (weak, nonatomic) IBOutlet UILabel *petsLabel;
@property (weak, nonatomic) IBOutlet UIStepper *petsStepper;
- (IBAction)stepperChanged:(id)sender;
- (IBAction)createStory:(id)sender;
@end
// JBViewController.m
// MadLibs2
#import "JBViewController.h"
@interface JBViewController ()
@end
@implementation JBViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)sliderChanged:(id)sender {
UISlider *slider = (UISlider *)sender;
//why not NSInteger?
int numberAsInt = (int) (slider.value + 0.5f);
NSString *newText = [[NSString alloc] initWithFormat:@"%d", numberAsInt];
//self is used to access properties
/// What is 'text' used for? Is it a method?
self.sliderLabel.text = newText;
}
- (IBAction)toggleShowHide:(id)sender {
UISegmentedControl *segmentedControl =
(UISegmentedControl *)sender;
NSInteger segment = segmentedControl.selectedSegmentIndex;
if (segment == 0)
// self is used to access properties
[self.settingsView setHidden:YES];
else
[self.settingsView setHidden:NO];
}
- (IBAction)stepperChanged:(id)sender {
// update petsLabel to increase or decrease value
UIStepper *stepper = (UIStepper *) sender;
//NSLog([NSString stringWithFormat:@"%d",(int)stepper.value]);
int stepperNum = (int)stepper.value;
NSString *numPets = [[NSString alloc] initWithFormat:@"%d", stepperNum];
self.petsLabel.text = numPets;
}
- (IBAction)createStory:(id)sender {
}
@end
【问题讨论】:
标签: ios objective-c swift iphone xcode