- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我是 iOS 编程的新手,我遇到了一个问题。
我创建了一个新的 View Controller ,并单击复选标记为其自动创建一个 .xib 文件。在 xib 文件中,我放了一个标签,我想淡入。所以我尝试将它链接到我的自定义 View Controller ,并继续崩溃并显示“此类不符合键 login1 的键值编码”。 Login1 是我导入的 UILabel 的名称。这是 RootView 的头文件:
@interface RootViewController : UIViewController {
PlayerStatViewController *playerStatViewController;
NSString *viewName;
}
@property (weak, nonatomic) IBOutlet UILabel *login1;
@property (nonatomic, retain) PlayerStatViewController *playerStatViewController;
@property (nonatomic, retain) NSString *viewName;
-(IBAction)switchPage:(id)sender:(NSString *)toSwitch;
-(void) animateButton;
@end
和 .m 文件: #import "RootViewController.h" #import "FileUtils.h"
@interface RootViewController ()
@end
@implementation RootViewController
@synthesize playerStatViewController;
@synthesize viewName;
@synthesize login1;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
self.viewName = @"Boot";
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSString* fpath = [NSString stringWithFormat:@"%@%@", getDefPath(), @"/config.txt"];
self.login1.text = loadfile(@"serverName", fpath);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
-(IBAction)switchPage:(id)sender :(NSString *)toSwitch {
if([toSwitch isEqualToString:(@"PlayerStat")]) {
if(self.playerStatViewController == nil) {
PlayerStatViewController *playerStatView = [[PlayerStatViewController alloc]
initWithNibName:(@"PlayerStat") bundle:[NSBundle mainBundle]];
self.playerStatViewController = playerStatView;
}
[self.navigationController pushViewController:self.playerStatViewController animated:YES];
}else if([toSwitch isEqualToString:(@"Boot")]) {
[self.navigationController pushViewController:self animated:YES];
}
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSelector:@selector(animateButton) withObject:nil afterDelay:0.1f];
}
- (void)animateButton {
self.login1.alpha = 0;
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseIn
animations:^{ self.login1.alpha = 1;}
completion:nil];
}
@end
我如何加载 Xib(如果重要的话):
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
RootViewController *viewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
[self.window setRootViewController:viewController];
[window makeKeyAndVisible];
return YES;
}
专为 iPhone 构建的项目。在 Xib 中,是的,自定义 View Controller 被设置为文件所有者。没有错误的值(检查管理器中的感叹号)。
编辑:崩溃日志:
2014-08-06 06:02:12.887 TrinityApi[5761:60b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x8c781d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key login1.'
*** First throw call stack:
(
0 CoreFoundation 0x017ee1e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x0156d8e5 objc_exception_throw + 44
2 CoreFoundation 0x0187dfe1 -[NSException raise] + 17
3 Foundation 0x0122dd9e -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282
4 Foundation 0x0119a1d7 _NSSetUsingKeyValueSetter + 88
5 Foundation 0x01199731 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267
6 Foundation 0x011fbb0a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412
7 UIKit 0x004e41f4 -[UIRuntimeOutletConnection connect] + 106
8 libobjc.A.dylib 0x0157f7de -[NSObject performSelector:] + 62
9 CoreFoundation 0x017e976a -[NSArray makeObjectsPerformSelector:] + 314
10 UIKit 0x004e2d4d -[UINib instantiateWithOwner:options:] + 1417
11 UIKit 0x004e4ada -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 165
12 UIKit 0x0022d61b -[UIApplication _loadMainNibFileNamed:bundle:] + 58
13 UIKit 0x0022d949 -[UIApplication _loadMainInterfaceFile] + 245
14 UIKit 0x0022c54e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 543
15 UIKit 0x00240f92 -[UIApplication handleEvent:withNewEvent:] + 3517
16 UIKit 0x00241555 -[UIApplication sendEvent:] + 85
17 UIKit 0x0022e250 _UIApplicationHandleEvent + 683
18 GraphicsServices 0x037e3f02 _PurpleEventCallback + 776
19 GraphicsServices 0x037e3a0d PurpleEventCallback + 46
20 CoreFoundation 0x01769ca5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
21 CoreFoundation 0x017699db __CFRunLoopDoSource1 + 523
22 CoreFoundation 0x0179468c __CFRunLoopRun + 2156
23 CoreFoundation 0x017939d3 CFRunLoopRunSpecific + 467
24 CoreFoundation 0x017937eb CFRunLoopRunInMode + 123
25 UIKit 0x0022bd9c -[UIApplication _run] + 840
26 UIKit 0x0022df9b UIApplicationMain + 1225
27 TrinityApi 0x00002a9d main + 141
28 libdyld.dylib 0x01e35701 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
编辑:只是随机开始工作
最佳答案
“class is not key value coding-compliant” 表示您一开始为我们的标签分配了一个 socket ,并在我们的 xib 中连接了它,但后来您删除了 socket ,xib 是仍然包含对不再存在的 socket 的引用,您需要从 xib 中删除此引用。
转到您的 XIB 文件并右键单击 Files Owner,您可能会发现上面有一个黄色标记的标签,只需移除其连接的 socket ,清理并再次运行您的程序
关于iOS 此类对于键标签不符合键值编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158162/
我以前使用过像 Netbeans 和 eclipse 这样的 IDE。 我在 friend 的电脑上下载了“Visual Studio Express 2013 for windows desktop
我正在尝试弄清楚如何在 GBA 大小的 EZ Flash 3 合 1 卡中对 PSRAM 进行编程。基本上重复 GBA Exploader 和其他程序所做的事情。 如果我选择一个 block 并对其进
Filter1=re.findall(r'',PageSource) Filter2=re.findall(r'',PageSource) Filter3=re.findall(r'(.*?).*?'
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我是一名优秀的程序员,十分优秀!