Я начинаю во всем программировании и стараюсь внедрить некоторые самообучаемые материалы из книг Big Nerd Ranch. Но я действительно в тупике от этой проблемы, и да, я искал этот и другие форумы для возможных решений без успеха. Вот код:Этот класс не является ключевым значением, совместимым с кодировкой для ключа XXX
ANKYViewController.h:
#import <UIKit/UIKit.h>
@interface ANKYViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *weightFieldDeadlift;
@property (weak, nonatomic) IBOutlet UITextField *repFieldDeadlift;
@property (strong, nonatomic) IBOutlet UILabel *workingOneRMDeadlift;
@property (weak, nonatomic) IBOutlet UITextField *weightFieldBenchPress;
@property (weak, nonatomic) IBOutlet UITextField *repFieldBenchPress;
@property (strong, nonatomic) IBOutlet UILabel *workingOneRMBenchPress;
@property (weak, nonatomic) IBOutlet UITextField *weightFieldSquat;
@property (weak, nonatomic) IBOutlet UITextField *repFieldSquat;
@property (strong, nonatomic) IBOutlet UILabel *workingOneRMSquat;
@property (weak, nonatomic) IBOutlet UITextField *weightFieldMilitaryPress;
@property (weak, nonatomic) IBOutlet UITextField *repFieldMilitaryPress;
@property (strong, nonatomic) IBOutlet UILabel *workingOneRMMilitaryPress;
- (IBAction)calculateOneRM:(id)sender;
@end
ANKYViewController.m: класс владелец
#import "ANKYViewController.h"
@interface ANKYViewController()
@end
@implementation ANKYViewController
@synthesize weightFieldDeadlift;
@synthesize repFieldBenchPress;
@synthesize workingOneRMBenchPress;
@synthesize weightFieldSquat;
@synthesize repFieldSquat;
@synthesize workingOneRMSquat;
@synthesize weightFieldMilitaryPress;
@synthesize repFieldMilitaryPress;
@synthesize workingOneRMMilitaryPress;
@synthesize repFieldDeadlift;
@synthesize workingOneRMDeadlift;
@synthesize weightFieldBenchPress;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[self setWeightFieldDeadlift:nil];
[self setRepFieldDeadlift:nil];
[self setWorkingOneRMDeadlift:nil];
[self setWeightFieldDeadlift:nil];
[self setRepFieldBenchPress:nil];
[self setWeightFieldBenchPress:nil];
[self setWorkingOneRMBenchPress:nil];
[self setWeightFieldSquat:nil];
[self setRepFieldSquat:nil];
[self setWorkingOneRMSquat:nil];
[self setWeightFieldMilitaryPress:nil];
[self setRepFieldMilitaryPress:nil];
[self setWorkingOneRMMilitaryPress:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)calculateOneRM:(id)sender {
float dw = [[weightFieldDeadlift text]floatValue];
float dr = [[repFieldDeadlift text]floatValue];
float d = (dw * dr * 0.0333) + dw;
NSLog(@"Deadlift: %f", d);
NSString *deadlift = [[NSString alloc]initWithFormat:@"%f", d];
[workingOneRMDeadlift setText:deadlift];
float bpw = [[weightFieldBenchPress text]floatValue];
float bpr = [[repFieldBenchPress text]floatValue];
float bp = (bpw * bpr * 0.0333) + bpw;
NSLog(@"Bench Press: %f", bp);
NSString *benchPress = [[NSString alloc]initWithFormat:@"%f", bp];
[workingOneRMBenchPress setText:benchPress];
float sw = [[weightFieldSquat text]floatValue];
float sr = [[repFieldSquat text]floatValue];
float s = (sw * sr * 0.0333) + sw;
NSLog(@"Squat: %f", s);
NSString *squat = [[NSString alloc]initWithFormat:@"%f", s];
[workingOneRMSquat setText:squat];
float mpw = [[weightFieldMilitaryPress text]floatValue];
float mpr = [[repFieldMilitaryPress text]floatValue];
float mp = (mpw * mpr * 0.0333) + mpw;
NSLog(@"Military Press: %f", mp);
NSString *militaryPress = [[NSString alloc]initWithFormat:@"%f", mp];
[workingOneRMMilitaryPress setText:militaryPress];
}
@end
файла уже указано в ANKYViewController. Связывание выходов и т. Д. Осуществлялось путем перетаскивания элементов управления вместо ручного кодирования (я сдался, потратив слишком много часов).
Ошибка:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x6c22e70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key repsField.'
Там нет копирования и вставки кода, и это, безусловно, огорчает, что нет никакого упоминания о «repsField» (вместо repFieldxxx) в любом месте.
Надеюсь, что это достаточно информации, которая поможет привести к решению, поскольку я провел дни, просматривая решения других людей без успеха.
Спасибо.
Посмотрите также в файле NIB/XIB; возможно, ссылки на свойства будут там (например, в привязке), даже если они не находятся в вашем коде. –
Обратите внимание, что в сообщении говорится, что 'UIApplication' (не' ANKYViewController ') не соответствует требованиям KVC для' repsField'. –
См. Мой ответ [здесь] (http://stackoverflow.com/questions/11166470/showing-a-uiview-subclass-this-class-is-not-key-value-coding-compliant-for-the/11167245# 11167245) для общего обсуждения этих ошибок. – jrturton