2011-05-27 79 views
1

爲什麼我的代碼顯示NSLog但不更改標籤文本? 我試圖展示appDelegate.times,但它不工作。爲什麼我的代碼顯示NSLog,但不更改標籤文本?

-(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); 
} 
+0

您的格式可能不正確,即'nil'。嘗試把它放在'NSLog()'中。 – 2011-05-27 23:52:00

+0

什麼類是'appDelegate.times'的一個實例? – 2011-05-27 23:52:16

+1

'次'是一個浮點數嗎?我注意到你正在使用兩個不同的'NSString'佔位符。 – raidfive 2011-05-27 23:52:46

回答

1

你需要做的是這樣的:

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

你真的不需要自己爲一個新的NSString對象實例化......而且,你忘了你的釋放NSString的對象......

並根據您的日誌,似乎「appDelegate.times」其實並不是一個浮動(%F ...)

+2

'[differenceLabel setText:'和'differenceLabel.text ='都可以。 – raidfive 2011-05-28 00:00:14

+0

你說的有點有道理,但只是嘗試了代碼和標籤仍然沒有改變:/並沒有發生錯誤... – myles 2011-05-28 00:03:06

+0

@Jonathan Yeh它在界面生成器中鏈接。 – myles 2011-05-28 00:09:44

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; 
} 

希望這有助於

相關問題