Во время выполнения Segue
ваш UIImageView не инициализируется, поэтому вы не можете назначить ему изображение, наилучшей практикой было бы передать UIImage
и инициализировать ваш UIImageView
в viewDidLoad
.
, поэтому в вашем классе ListPage
свойство типа UIImage
изменит вашу prepareForSegue
строку как
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "toBrowsePage" {
var itemToAdd = segue.destinationViewController as! ListPage
itemToAdd.image = browsingImage.image
}
}
в viewDidLoad
или viewDidAppear
вашего пункта назначения viewController
вы сделаете что-то вроде этого
browsingImage.image = image
Используя код Вы отправили и на средстве моделирования и на телефоне с 2,1 микропрограммными и 24-часовыми наборами времени к прочь, мне никогда не добавляли/PM к dateStr, когда я делаю:
NSLog(@"%@", dateStr);
Вы делаете что-либо еще с dateStr, который Вы не отправили здесь? Как Вы проверяете значение?
Продолжают
, Попытка, поворачивающаяся,/пополудни, устанавливая на тогда прочь. У меня не было проблемы также, пока я не сделал это. Я печатаю его тот же способ, которым Вы.
Хорошо, я вижу его, когда я делаю это также. Это, должна быть ошибка. Я рекомендую, чтобы Вы зарегистрировали отчет об ошибках и просто проверили на и отфильтровали нежелательные символы тем временем.
Я думаю, что это решение.
NSDateFormatter *df =[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[df setLocale: usLocale];
[usLocale release];
NSDate *documento_en_Linea =[[[NSDate alloc] init]autorelease];
documento_en_Linea=[df dateFromString:@"2010-07-16 21:40:33"];
[df release];
NSLog(@"fdocumentoenLineaUTC:%@!",documento_en_Linea);
//ouput
fdocumentoenLineaUTC:2010-07-16 09:40:33 p.m. -0500!
Это также должно работать (хотя я вижу некоторые странные результаты).
-(NSString*)lowLevTime:(NSString*)stringFormat {
char buffer[50];
const char *format = [stringFormat UTF8String];
time_t rawtime;
struct tm * timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer, sizeof(buffer), format, timeinfo);
return [NSString stringWithCString:buffer encoding:NSASCIIStringEncoding];
}
Вот объяснение ошибки iPhone SDK (также все еще присутствующей в 3.1 beta SDK)
Во-первых, небольшая предыстория пользовательского интерфейса iPhone. Когда iPhone пользователи меняют формат своего региона между, скажем, «США» и «Франция», пользовательская настройка «24-часовое время» автоматически переключается к режиму, наиболее распространенному в этом регионе. Во Франции это установит для 24-часового времени значение «ВКЛ.», а в США - «ВЫКЛ.». Затем пользователи могут вручную переопределить этот параметр, и это где начинаются проблемы.
Проблема возникает из-за того, что NSDateFormatter каким-то образом «застревает» в 12- или 24-часовой режим времени, выбранный пользователем вручную. Так что если Французский пользователь вручную выбирает 12-часовой режим, и приложение запросил NSDateFormatter для вывода времени в 24-часовом формате «Хммм», время будет отображаться в 12-часовом формате, например «13:00», как если бы приложение вместо этого запросило «хммм аа». Обратное произойдет, если пользователь из США вручную выберет 24-часовой режим: вывод времени в 12-часовом формате «ххмм аа» на самом деле получил бы вместо этого вы указываете время в 24-часовом формате, например, «17:00».
Более подробную информацию и возможные обходные пути можно найти в этом блоге .
Для тех, кто нашел этот вопрос и хочет использовать NSDateFormatter для разбора 24-часового времени и столкнулся с этой ошибкой, использование NSDateComponents для разбора дат и времени, которые имеют известный формат, обходит эту проблему:
NSString *dateStr = @"2010-07-05";
NSString *timeStr = @"13:30";
NSDateComponents *components = [[NSDateComponents alloc] init];
components.year = [[dateStr substringToIndex:4] intValue];
components.month = [[dateStr substringWithRange:NSMakeRange(5, 2)] intValue];
components.day = [[dateStr substringFromIndex:8] intValue];
components.hour = [[timeStr substringToIndex:2] intValue];
components.minute = [[timeStr substringFromIndex:3] intValue];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [calendar dateFromComponents:components];
[components release];
[calendar release];