Posting to yFrog objc

时光怂恿深爱的人放手 提交于 2019-12-02 10:04:30

You're not implementing the delegate call back methods (at least in the code above) I see you setting self to the delegate but I don't see the callbacks. Also ensure that you're checking the error callback

Here's the delegate callback methods you need to implement:

http://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/NSURLConnectionDelegate

didFailWithError is the big one if you're having issues. make sure you read all the NSError data and at a minimum log it.

For example:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [responseData appendData:data];
}

- (void) connectionDidFinishLoading:(NSURLConnection *)connection {
    [connection release];

    NSString* responseString = [[NSString alloc] initWithData:responseData     encoding:NSUTF8StringEncoding];
    NSLog(@"result: %@", responseString);

    [responseString release];
}

- (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
       NSLog(@"error - read error object for details");
}

My XMLParser below

//
//  yFrogParser.h
//  PreviewMaker
//
//  Created by Anthony Cornell on 4/12/12.
//  Copyright (c) 2012 iDevice Designs. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "yFrogObject.h"

@interface yFrogParser : NSObject<NSXMLParserDelegate>{

NSMutableData *recivedData;
NSMutableArray *imageInfo;
NSMutableString    *currentNodeContent;
NSXMLParser        *parser;

yFrogObject *imageObjects;
NSMutableArray *imageArray;   

}

@property (readonly, retain) NSMutableArray *imageInfo;
@property (nonatomic, retain) NSMutableArray *imageArray;   
@property (nonatomic, retain) NSMutableData *recivedData;

-(id) loadXMLByData:(NSMutableData *)data;

@end



//
//  yFrogParser.m
//  PreviewMaker
//
//  Created by Anthony Cornell on 4/12/12.
//  Copyright (c) 2012 iDevice Designs. All rights reserved.
//

#import "yFrogParser.h"

@implementation yFrogParser

@synthesize imageInfo,imageArray,recivedData;

-(id) loadXMLByData:(NSMutableData *)data{


imageArray          = [[NSMutableArray alloc] init];
recivedData = [[NSMutableData alloc]initWithData:data];
parser          = [[NSXMLParser alloc] initWithData:recivedData];
parser.delegate = self;
[parser parse];

return self;    

}
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname   
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
 attributes:(NSDictionary *)attributeDict
{


if ([elementname isEqualToString:@"links"]) 
{
    imageObjects = [yFrogObject alloc];

}
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName     
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{  

if ([elementName isEqualToString:@"image_link"]) {

    imageObjects.responceURL = currentNodeContent;
}

if ([elementName isEqualToString:@"image_bb"]) {

    imageObjects.forumUrl = currentNodeContent;
   // NSLog(@"image forum url %@",currentNodeContent);
}    


if ([elementName isEqualToString:@"links"]) 
{
    [imageArray addObject:imageObjects];
    [imageObjects release];
    imageObjects = nil;
    [currentNodeContent release];
    currentNodeContent = nil;

}
}



- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent = (NSMutableString *) [string    
                                          stringByTrimmingCharactersInSet:[NSCharacterSet    
whitespaceAndNewlineCharacterSet]];
}


@end

In your Delegate do something of this nature

-(void) connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];


parser = [[yFrogParser alloc]init];
[parser loadXMLByData:webData];

yFrogObject *object =  [[parser imageArray]objectAtIndex:0];



NSString* responseString = [[NSString alloc] initWithData:webData 
encoding:NSUTF8StringEncoding];

//NSLog(@"Parser result: %@", [object responceURL]);
//NSLog(@"yFrog responce results: %@", responseString);

[responseString release];

}

In the mood of sharing! Hope this helps

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!