NSUSを使用してWebサイトからXMLデータを使用するiOSアプリケーションで作業しています:http://undignified.podbean.com/feedそこから、NSXMLParserを使ってXMLを解析し、 "enclosure"要素内の "url"という属性を検索します。 "url"と一致するすべての属性は、_linksというラベルの変更可能な配列に追加されます。この問題は、 "url"属性が見つかって配列に追加されるたびに発生し、以前のエントリに追加され、本質的に配列内に大きなオブジェクトが1つ作成されます。私は配列をのNSLog場合、_linksは、以下が表示されます。私は、配列のためのaddObjectを使用していますとは、insertObjectを試みてきたが、どちらも働いているiOS:NSMutableArrayに追加されたアイテムは1つのアイテムとして表示されます
(
(
"http://undignified.podbean.com/mf/feed/hm8a2d/UndignifiedBonusShow.mp3",
"http://undignified.podbean.com/mf/feed/cfdayc/UndignifiedShow03.mp3",
"http://undignified.podbean.com/mf/feed/wbbpjw/UndignifiedShow02Final.mp3",
"http://undignified.podbean.com/mf/feed/ih2x8r/UndignifiedShow01.mp3",
"http://undignified.podbean.com/mf/feed/t4x54d/UndignifiedShow00.mp3"
)
)
。私のコードは以下の通りです。私は配列の中にオブジェクトを読み込む他のインスタンスで、forループを実装しなければならなかったが、パーサメソッドがXMLドキュメント全体をループするように見えるので、ここで必要かどうかはわかりません。私はそれが私が行方不明になっている小さなものだと確信しています。正しい方向への軽快さは非常に高く評価されます。
UnDigParser.H - 構文解析のためにファイルを聞く:
@interface UnDigParser : NSXMLParser <NSXMLParserDelegate> {
}
@property (retain) NSMutableArray *links;
@end
UnDigParser.M - 構文解析の実装ファイル:
@implementation UnDigParser
NSMutableArray *_links;
@synthesize links = _links;
-(void)parserDidStartDocument:(NSXMLParser *)parser{
_links=[[NSMutableArray alloc] init];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"enclosure"]){
NSString *link = [attributeDict objectForKey:@"url"];
if (link){
[_links addObject:link];
}
}
NSLog(@"%@",_links);
}
-(BOOL)parse{
self.delegate = self;
return [super parse];
}
@end
おかげで、ジャスティン。私はフィードバックに感謝します。 _linksを取り出し、それをself.linksに置き換え、あなたが言及した他の修正を行いました。ここに出力がありますが、まだ1項目または複数の項目として報告されているかどうかは不明です。 – Fostenator
出力を投稿するのに問題がありますが、基本的には の開き括弧 url、url、 – Fostenator
私はデバッグコンソールをチェックするときに配列 "リンク"に1つのオブジェクトとして追加されていることを確認しました。 – Fostenator