Tôi đang sử dụng đoạn mã sau & của nó làm việc hoàn toàn tốt đẹp trong hệ điều hành iPhone 3,2Đối với iPhone OS 4.0 "dateFromString" phương pháp NSDateFormatter trả về nil
+(NSDate *)NSDateFromString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *dateObj=[dateFormatter dateFromString:dateString];
[dateFormatter release], dateFormatter=nil;
return dateObj;
}
Nhưng khi tôi cố gắng sử dụng cùng mã Tôi iPhone OS 4.0 với dateObj là không.
Lý do là:
- (id)init
phương pháp NSDateFormatter là chỉ có sẵn trong hệ điều hành iPhone 2.0 thông qua hệ điều hành iPhone 3.2. Nó không được chấp nhận trong hệ điều hành iPhone 4.0.
Bây giờ giải pháp cho điều đó là gì? Làm thế nào để init NSDateFormater? Phương án thay thế là gì?
Chúng tôi có thể chuyển đổi NSString thành NSDate bằng NSDateComponents như: NSDateComponents * comps = [[NSDateComponents alloc] init]; [comps setDay: 6]; [comps setMonth: 5]; [comps setYear: 2004]; NSCalendar * gregorian = [[Phân bổ NSCalendar] initWithCalendarIdentifier: NSGregorianCalendar]; Ngày NSDate * = [ngày gregorianTừ thành phần: comps]; [comps release]; – Rambo
Nhưng, Bây giờ phải làm gì với NSDateFormatter? Chúng ta không thể sử dụng nó với hệ điều hành iPhone 4.0? nếu có thì làm thế nào? – Rambo
chỉ cần sử dụng nó không được chấp nhận không có nghĩa là nó sẽ không hoạt động - nó chỉ có thể không hoạt động trong tương lai. Nếu bạn __NSLog (@ "% @", dateFormatter), __ sau khi bạn đã gọi init bạn sẽ nhận được gì? Nếu bạn không nhận được nil, cảnh báo này là không có gì để làm với vấn đề của bạn. – deanWombourne