私がこのコードを持っているとしましょう:
NSString *inspDate = @"20120515";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd"];
NSDate *inspectionDate;
inspectionDate = [dateFormatter dateFromString:inspDate];
それが機能する(正しくフォーマットされたデータが含まれている)ことを確認すると、NSDate機能します...しかし、なぜですか?
ここで手順を実行します。
のメモリ
NSDateFormatterが割り当てられ、ヒープ内でインスタンス化されています。dateFormatterその場所を指しています、それを手に入れました:NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];今、'sを日付として
dateFormatter解釈する方法を教えられています、わかりました:NSString[dateFormatter setDateFormat:@"yyyyMMdd"];これがぼんやりしている部分です
inspectionDate。ポインタはnilに設定されています。それは何も指していません:NSDate *inspectionDate;がなかった、または呼び出されたときに、ポインタをどのように
dateFormatter返しますか?の実装とその実装はありますか?NSDateallocinitinspectionDatedateFromStringallocinitinspectionDate = [dateFormatter dateFromString:inspDate];
私がこれを視覚化するのを手伝うことは、途方もない助けになるでしょう。ありがとうございました!