- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:iPhoneアプリの開発についてです。)
iPhoneアプリ開発でリンクタグのURLを取り出す際にエラーが発生する
このQ&Aのポイント
- iPhoneアプリ開発において、ディクショナリから文字列を取り出す際にエラーが発生します。具体的には、XMLファイルからタイトルやURLの情報をNSDictionaryで取り出す際に、URLを取り出す際だけエラーが発生します。エラーメッセージは「-[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance」と表示されます。
- エラーの原因は、XMLのリンクタグが2種類あり、その形式に応じて取り扱いたいためです。具体的なリンクタグの形式は、タイプ1が「<link rel="alternate" type="text/html" href="URL"/>」、タイプ2が「<link>URL</link>」です。
- エラーを解消するためには、タグの種類に応じて文字列を取り出す方法を変更する必要があります。例えば、タイプ2のタグに対しては「dic[@"link"][@"href"]」といった方法でURLを取得できます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
使用しているXMLパーサーの仕様によると思いますが、 コーディングの雰囲気と、発生しているエラーメッセージ内容から たぶんタイプ2のパターンはdic[@"link"]がNSDictionaryでなく NSStringで返ってくるようになっているのだと思います。 とすると、 if ([dic[@"link"] isKindOfClass:[NSString class]]) { str = dic[@"link"]; } else { str = dic[@"link"][@"@href"]; } のようにdic[@"link"]に格納されているオブジェクトのクラスを 判定すれば例外発生で止まらないようにできると思います。
お礼
無事解決できました。 ありがとうございました。