1
簡単に言えば、次のコードは、なぜ失敗するのか困惑しています。NSStringWithFormatクラッシュ
// This line works
NSString * string = [NSString stringWithFormat:@"%lu",[[NSDate date] timeIntervalSince1970]];
// This line works
string = [NSString stringWithFormat:@"%@",@"somestring"];
// This line generates and EXEC_BAD_ACCESS error
string = [NSString stringWithFormat:@"%lu%@",[[NSDate date] timeIntervalSince1970],@"somestring"];
なぜですか?
または、これをint型の '@"%lu%@ "(unsigned int)NSDate.date.timeIntervalSince1970'にキャストすることもできますが、このコメントは完全なものですが、私は答えを言うだろう:) – deanWombourne
それはクラッシュを引き起こすことはありません、ちょうど私の目的の意図である返信日付の符号なしバージョンを生成します。 – YuzaKen
@sch - 間違った書式指定子を渡すことの副作用としてスタックに何が起こっているのか分かりません:)どちらの場合でも動作しないと思われますが、損傷はメモリの安全なセクションで行われます)しかし、メモリ内でケース(2)で使用しようとします。 – deanWombourne