2016-02-23 130 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); 

} 

然后告诉我,如果它工作在两台设备上。

相关问题