gpt4 book ai didi

objective-c - 标签更新为空

转载 作者:行者123 更新时间:2023-12-03 17:51:28 25 4
gpt4 key购买 nike

我遇到了 UI 中标签未正确更新的问题。我有一个 Mac OS X 应用程序,它使用大纲 View 来切换 View 。我只想在切换到(FirstViewController)的 View 上的标签中向用户显示日期。当在新项目中单独实现时,我没有任何问题。但是,当在 View 更改的地方实现时,标签的值不会更新,实际上控制台输出表明 _dateLabel 为(空),即使在事先设置之后也是如此。有什么建议么?我一定错过了一些非常基本的东西!

控制台输出:

2014-08-30 19:54:22.719 OutlineView[10420:1613022] StringedText 为 2014 年 8 月 30 日

2014-08-30 19:54:22.720 OutlineView[10420:1613022] 标签值为(空)

我包含以下代码:

//
// FirstViewContorller.h
// OutlineView


#import <Cocoa/Cocoa.h>

@interface FirstViewContorller : NSViewController

@property (weak) IBOutlet NSTextField *dateLabel;

-(void)updateDateScreen;

@end


//
// FirstViewContorller.m
// OutlineView


#import "FirstViewContorller.h"

@implementation FirstViewContorller
@synthesize dateLabel = _dateLabel;

-(void)updateDateScreen{
//date calculation for main window
NSDate *now = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterLongStyle];
NSString *stringedText = [formatter stringFromDate:now];
_dateLabel.stringValue = stringedText;
NSLog(@"StringedText is %@", stringedText);
NSLog(@"label value is %@", _dateLabel.value);
}

@end




//
// AppDelegate.m
// OutlineView


#import "AppDelegate.h"
#import "Book.h"
#import "FirstViewContorller.h"

@interface AppDelegate()

@property (weak) IBOutlet NSOutlineView *outlineView;
@property (weak) IBOutlet NSTreeController *booksController;

@end


@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
//other code here

//Call the update method in FirstViewController to load date label
FirstViewContorller *instance = [[FirstViewContorller alloc]init];
[instance updateDateScreen];

}

//further unrelated code

@end

最佳答案

你有:

NSLog(@"label value is %@", _dateLabel.value);

并且因为它输出“null”,您认为您的是“null”,而实际上_dateLabel很可能是null。

您正在创建 instance 对象,但随后调用更新 UI 对象的方法,该对象在您调用它时可能尚未从 xib 文件中取消归档。因此,尽管您的日期格式化程序正确创建了一个字符串,但它试图将其设置为 nil 对象。

您可以通过检查以下内容的输出来亲自看到这一点:

NSLog(@"label is %@", _dateLabel);

这也可能返回“null”。

关于objective-c - 标签更新为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25581302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com