2011-07-17 36 views
0

我需要創建一個循環,檢測24小時過後,我的日曆上的數字從1更改爲2,然後2更改爲3 ...一直到31.所以當它是31時它說31。數字在我的標籤欄符號上,並且我使用石英繪製了數字,因此數字不是整數,而是寫入數字的nsstring。顯示的數字是6,當它應該是今天的日期17.不知道我錯了哪裏?日期改變時需要顯示日期的數字嗎?

這是到目前爲止我的代碼:

- (void)updateLabelForDate:(NSDate *)date { 
NSTimeInterval timeInterval = [date timeIntervalSinceReferenceDate]; 
NSInteger days = timeInterval/(60*60*24); 
NSArray *sloganArray = [NSArray arrayWithObjects: 
         NSLocalizedString(@"1", nil), 
         NSLocalizedString(@"2", nil), 
         NSLocalizedString(@"3", nil), 
         NSLocalizedString(@"4", nil), 
         NSLocalizedString(@"5", nil), 
         NSLocalizedString(@"6", nil), 
         NSLocalizedString(@"7", nil), 
         NSLocalizedString(@"8", nil), 
         NSLocalizedString(@"9", nil), 
         NSLocalizedString(@"10", nil), 
         NSLocalizedString(@"11", nil), 
         NSLocalizedString(@"12", nil), 
         NSLocalizedString(@"13", nil), 
         NSLocalizedString(@"14", nil), 
         NSLocalizedString(@"15", nil), 
         NSLocalizedString(@"16", nil), 
         NSLocalizedString(@"17", nil), 
         NSLocalizedString(@"18", nil), 
         NSLocalizedString(@"19", nil), 
         NSLocalizedString(@"20", nil), 
         NSLocalizedString(@"21", nil), 
         NSLocalizedString(@"22", nil), 
         NSLocalizedString(@"23", nil), 
         NSLocalizedString(@"24", nil), 
         NSLocalizedString(@"25", nil), 
         NSLocalizedString(@"26", nil), 
         NSLocalizedString(@"27", nil), 
         NSLocalizedString(@"28", nil), 
         NSLocalizedString(@"29", nil), 
         NSLocalizedString(@"30", nil), 
         NSLocalizedString(@"31", nil), 
         nil]; 
NSInteger usedSloganIndex = (int)days % [sloganArray count]; 
slogan = [sloganArray objectAtIndex:usedSloganIndex]; 
NSLog(@"Slogan: %@", slogan); 
NSLog(@"%i",usedSloganIndex); 

int x,y,width,height; 


x = 23; 
y = 440; 
width = 20; 
height = 20; 



CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:slogan]; 


- (void)applicationSignificantTimeChange:(UIApplication *)application { 
[self updateLabelForDate:[NSDate date]]; 
} 


- (void)applicationDidBecomeActive:(UIApplication *)application { 
[self updateLabelForDate:[NSDate date]]; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Override point for customization after application launch. 

// Add the tab bar controller's view to the window and display. 
[window addSubview:tabBarController.view]; 
[self addTabBarArrow]; 
[window makeKeyAndVisible]; 

[self updateLabelForDate:[NSDate date]]; 

return YES; 

}

感謝

回答

2

可以通知您當您的應用程序委託實施applicationSignificantTimeChange:日期改變。檢查its documentation何時會被調用,但它包含您幾乎可以肯定需要的時間。

+0

我已更新我的問題 – Dangermouse

+0

如果你想要今天的日期,你可以使用'NSDateComponents'。你所做的數學與當前日期無關。您已將秒數除以一天中的秒數,然後將其取爲模31。這個數字與有意義的公曆日期沒有關係。這甚至不是一個月的平均天數。 –