为什么我的代码显示NSLog但不更改标签文本?

时间:2011-05-27 23:48:46

标签: iphone objective-c xcode label nslog

为什么我的代码显示NSLog但不更改标签文本? 我正在尝试显示appDelegate.times但它不起作用。

-(void)Dothis
{
    //retain
    appDelegate = [[[UIApplication sharedApplication] delegate] retain];

    //display in label
    differenceLabel.text = [[NSString alloc] initWithFormat:@"%.3f", appDelegate.times];

    //display in console
    NSLog(@"Computed time wasrggsdfgd: %@", appDelegate.times);
}

2 个答案:

答案 0 :(得分:1)

你需要这样做:

[differenceLabel setText:[NSString stringWithFormat:@"%@", appDelegate.times]];

你真的不需要自己实例化一个新的NSString对象......而且你忘了释放你的NSString对象......

根据您的日志,似乎“appDelegate.times”实际上不是浮点数(%f ...)

答案 1 :(得分:0)

这应该可以解决问题:

这是我设置标签文本的函数,它看起来像这样

-(void)seeValue
{
appdelegate = (stackoverflowQueriesAppDelegate*)[[UIApplication sharedApplication]delegate];
lbl.text = [NSString stringWithFormat:@"%.f",appdelegate.f];    
}

我将浮点值指定为我的标签lbl的文本,这里是我的appdelegate文件中存在的代码视图

@interface stackoverflowQueriesAppDelegate : NSObject  {

    float f;  
}
@property (nonatomic,assign) float f;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end

这是我的appdelegate.m文件的视图

@implementation stackoverflowQueriesAppDelegate
@synthesize window=_window,f;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    f= 225.32;
    myview *obj = [[myview alloc]init];
    [self.window addSubview:obj.view];
    [self.window makeKeyAndVisible];
    return YES;
}

希望这会有所帮助