ページ

2012年3月16日金曜日

NSXMLParser途中でやめたときのメモ

NSXMLParser使ってみようと思ったけど、下記じゃあ動かない。



 NSLog(@"hooooooo");が実行されていない。


とりあえずJSON形式に変更したので、XMLは途中でやめたのだが、
また使うときのために備忘録メモしとく。てかyoutubeもJSON形式のようだし。

.hファイル

@interface FirstViewController : UITableViewController<
NSXMLParserDelegate
>{

NSMutableData *resultUnsync;
NSURLConnection *connection;
//---xml parsing---
NSXMLParser *xmlParser;
}



.mファイル

@implementation FirstViewController

// レスポンスが返ってきたときに呼び出されるメソッド
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
resultUnsync =[[NSMutableData alloc]init];
NSLog(@"returned response:%@",resultUnsync);
};

// データが返ってきたときに呼び出されるメソッド
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[resultUnsync appendData:data];
NSLog(@"returned data :%@",data);
};

// データ受信が完了したときに呼び出されるメソッド
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
NSString *resultUnsyncString = [[NSString alloc]initWithData:resultUnsync encoding:NSASCIIStringEncoding];
NSLog(@"finished recieved datas :%@",resultUnsyncString);

if (xmlParser)
{
//[xmlParser release];
}
xmlParser = [[NSXMLParser alloc] initWithData: resultUnsync];
[xmlParser setDelegate: self];
[xmlParser setShouldResolveExternalEntities:YES];
NSLog(@"yaaaaaaaa");
[xmlParser parse];
}

//---when the start of an element is found---
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict {

NSLog(@"hooooooo");
if( [elementName isEqualToString:@"comment"]){
NSLog(@"haaaaaaa!");
}
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
NSString *keyword = [searchBar text];
NSLog(@"検索語: %@",keyword);
[searchBar resignFirstResponder];

NSString *requestFeed = @"http://gdata.youtube.com/feeds/api/videos?q=%@&v=2&format=1,6&alt=jsonc";
NSString *urlStirng = [NSString stringWithFormat:requestFeed,
[keyword stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"url=%@",urlStirng);
NSURL *url = [NSURL URLWithString:urlStirng];

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

// 非同期通信
connection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];

}

0 件のコメント:

コメントを投稿