2016-02-23 169 views
0

在我的應用程序中,我必須顯示一週的日期值。它在iPhone上正常工作,但在iPad中無法正常工作。修復bug:日期值適用於iPhone,但不適用於iPad

1,本圖顯示了在iPhone上的文本框上方的日期值(21 ... 27)

enter image description here

2,本圖顯示的文本框中錯誤日期值(3)上述在iPad中。

enter image description here

對於這個我的一段代碼:

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// here the self.startday value has been passed from one controller to another. 
_datelabel.text = self.startday; 
// here the self.startday [email protected]"2016-02-23" 
[self method1]; 
[self getdateArray]; 
[self method2]; 
} 

我的方法的一段代碼獲取日期:

-(void) get date 
{ 
NSString *dateStr,*strday; 
NSString *[email protected]"yyyy-MM-dd"; 
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; 
[dateFormatter1 setDateFormat:dateFormat]; 
NSDate *date = [dateFormatter1 dateFromString:self.startday]; 
NSLog(@"%@",date); 
NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; 
NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; 
NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:date]; 
NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:date]; 
NSTimeInterval gmtInterval = currentGMTOffset - gmtOffset; 
NSDate *destinationDate = [[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:date]; 
NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init]; 
[dateFormatters setDateFormat:dateFormat]; 
[dateFormatters setTimeZone:[NSTimeZone systemTimeZone]]; 
dateStr = [dateFormatters stringFromDate: destinationDate]; 
self.wkDateArray = [[NSMutableArray alloc] init]; 
self.wkDayArray = [[NSMutableArray alloc] init]; 
NSCalendar *calendar = [NSCalendar currentCalendar]; 
for(int i =0 ;i<7;i++) 
{ 
NSDate *newdate = [destinationDate dateByAddingTimeInterval:60*60*24*i]; 
NSDateComponents *comp =[calendar components:NSCalendarUnitDay fromDate:newdate]; 
strday = [NSString stringWithFormat:@"%ld",[comp day]]; 
[self.wkDayArray insertObject:strday atIndex:i]; 
dateStr = [dateFormatters stringFromDate: newdate]; 
[self.wkDateArray insertObject:dateStr atIndex:i]; 
} 
NSLog(@"%@",self.wkDayArray[0]); 
NSLog(@"%@",self.wkDateArray[0]); 
} 

//記錄儀這一行:

NSDate *date = [dateFormatter1 dateFromString:self.startday]; 
NSLog(@"%@",date); 

如果我在「iPhone目的地」把記錄器的「日期」輸出將是:

iphone:2016-02-20 18:30:00 +0000 

如果我把記錄的日期在「iPad的目的地」輸出將是:

ipad:(null) 

後來我總結由於這個空值,已經設置了一些錯誤的值。

爲什麼它在iPad目的地顯示空值?對此有什麼確切的解決方法?提前致謝請幫助我。

+0

幫我解決這個問題。 – jsaonboo

+0

iPAd模擬器給出相同的輸出? –

+0

的iPad有相同的時區/位置嗎? –

回答

0

創建iPad和iPhone的一個新的通用應用,並且只有改變這種代碼:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSString *startday = @"2016-02-23"; 
    NSString *dateStr,*strday; 
    NSString *[email protected]"yyyy-MM-dd"; 
    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; 
    [dateFormatter1 setDateFormat:dateFormat]; 
    NSDate *date = [dateFormatter1 dateFromString:startday]; 
    NSLog(@"%@",date); 

} 

然後告訴我,如果它工作在兩臺設備上。

相關問題