Web上のXML-Docからデータを解析しているアプリケーションを作成しています。したがって、読み込みが終了すると、次のように解析メソッドを呼び出すことになっています。自己エラーを使ってメソッドを呼び出す
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[self startParsingData];
}
これは右、理論的には動作するはず?問題は私はこのエラーが表示されます:
Reciever type 'ffwDetailViewController' for instance message does not declare a method with selector 'startParsing Data'
私はそれを取る、xCodeはこの方法は存在しないと思いますが、します。
-(void)startParsingData{
NSXMLParser *dataParser = [[NSXMLParser alloc] initWithData:recievedData];
dataParser.delegate = self;
[dataParser parse];
}
私が何をするか分かりません。私は本当に助けていただければ幸いです。
彼らのポジションを切り替えることは、そのトリックでした。残念ながら、ボタンを押すとアプリケーションがクラッシュするようになりました。ここに完全なコードがあります。あなたが私を助けることを願っています。
- (IBAction)getMissions:(id)sender {
if (recievedData) {
recievedData = nil;
}
[email protected]"Pasing Data...";
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://oliverengelhardt.de/ffw_app/test.xml"]]
cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
//Start loading Data
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
recievedData = [NSMutableData data];
}else{
[_einsaetze setText:@"connection failed"];
}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
[recievedData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
if (recievedData) {
[recievedData appendData:data];
}
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
[email protected]"connnection failed";
}
-(void)startParsingData{
NSXMLParser *dataParser = [[NSXMLParser alloc] initWithData:recievedData];
dataParser.delegate = self;
[dataParser parse];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[self startParsingData];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"element"]) {
NSString *myData = [NSString stringWithFormat:@"%@", [attributeDict objectForKey:@"myData"]];
_einsaetze.text = myData;
}
}
ヘッダーファイルにそのメソッドが宣言されていますか? –
あなたの問題を解決したので、Peter Mの答えを受け入れるべきです。あなたは今新しい問題を抱えているので、新しい質問として投稿してください。 – Jim
さて、ありがとう、ありがとう。 – oengelha