我有 2 个类:AppDelegate 和 ViewAddFriendsWindowObject。
在 AppDelegate.m 中,我有以下几行代码:
#import "ViewAddFriendsWindowObject.h"
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
ViewAddFriendsWindowObject *viewAddFriends = [[ViewAddFriendsWindowObject alloc] init];
[viewAddFriends isFirstRun:YES];
}
在 ViewAddFriendsWindowObject.h 中我有:
#import <Foundation/Foundation.h>
@interface ViewAddFriendsWindowObject : NSObject
@property IBOutlet NSButton *cancelSkipBtn;
@property IBOutlet NSButton *doneBtn;
- (void)isFirstRun:(BOOL)firstRun;
@end
在 ViewAddFriendsWindowObject.m 中我有:
#import "ViewAddFriendsWindowObject.h"
@implementation ViewAddFriendsWindowObject
@synthesize cancelSkipBtn=_cancelSkipBtn;
@synthesize doneBtn=_doneBtn;
- (void)isFirstRun:(BOOL)firstRun{
NSLog(firstRun ? @"Yes" : @"No");
if(firstRun == YES){
NSLog(@"YES");
[_cancelSkipBtn setTitle:@"Skip"];
[_cancelSkipBtn setEnabled:NO];
}else{
NSLog(@"NO");
[_cancelSkipBtn setTitle:@"Cancel"];
}
}
@end
问题就在这里。 NSLog(@"YES")
已执行,但 [_cancelSkipBtn setTitle:@"Skip"];
和 [_cancelSkipBtn setEnabled:NO];
不是。有什么想法吗?
最佳答案
当您在代码中分配和初始化对象时,您将绕过在 IB 中建立的任何连接。因此,在调用 isFirstRun
之前,您的 IBOutlet 属性不会被设置为任何内容
关于objective-c - NSObject 内的部分方法未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418683/