XCodeでランタイムエラーを引き起こす次のコードがあります
NSString* temp = [[param objectforkey@"firstParam"] stringValue];
int tempNum = [[param objectforkey@"secondParam"] intValue];
param は plist からロードします。firstParam は文字列、secondParam は数値
最初の行でプログラムがクラッシュします。
興味深いのは、ハードカーストを実行すると機能することです。
NSString* temp = (NSString*)[param objectforkey@"firstParam"];
int tempNum = [[param objectforkey@"secondParam"] intValue];
intValue を使用して int にキャストする必要があるのに、NSString を取得するためにハード キャストを行う必要があるという点で、ID の実装に一貫性がないのはなぜだろうか? なぜstringValueではないのですか?