私がこのコードを持っているとしましょう:
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
返しますか?の実装とその実装はありますか?NSDate
alloc
init
inspectionDate
dateFromString
alloc
init
inspectionDate = [dateFormatter dateFromString:inspDate];
私がこれを視覚化するのを手伝うことは、途方もない助けになるでしょう。ありがとうございました!