2011-07-06 12 views
1

現在、XMLを解析し、XMLが解析される辞書をView Controllerに送信するクラスがあります。 、コードが細かいその時点で辞書が公開されていますか?

if ([elementName isEqualToString:@"SessionData"]) 
{ 
// We reached the end of the XML document 
// dumps dictionary into log 
NSLog(@"Dump:%@", [response description]); 

// sends dictionary to the VC 
CardSetupViewController *setup = [[CardSetupViewController alloc]init]; 
setup.response = self.response; 

//checks 
NSLog(@"%@ lololololol", [setup.response description]); //THIS WORKS FINE!! 
return; 
} 

動作します:ここで

は(「レスポンス」は辞書である)他のクラスに辞書を送信するコードの抜粋です。 NSLogは// This Works Fine !!とマークされています。作品...明らかに。ここでのViewController方法である:

- (BOOL)authorize //this 
{ 
    AddCard *addCard = [[AddCard alloc]init]; 
    ServerConnection *connection = [[ServerConnection alloc]init]; 
    //XMLParser *xmlParser = [[XMLParser alloc]initXMLParser]; 

    //serverReturn posts the data and is the ACTUAL server response in NSData form 
    NSData *serverReturn = [connection postData:[addCard textBoxToXml: 
                [self nameOnCardGet]: 
                [self ccNumGet]: 
                [self expMoGet]: 
                [self expYrGet]: 
                [self cvvGet]: 
                [self zipGet]: 
                [self nickNameGet]: 
                [self pinGet]]]; 

    //This takes the information from the server and parses it to "response" 
    //Creates and inits NSXMLParser Object 
    NSXMLParser *nsXmlparser = [[NSXMLParser alloc] initWithData:serverReturn]; 
    //Create and init our delegate 
    XMLParser *parser = [[XMLParser alloc] initXMLParser]; 
    //set delegate 
    [nsXmlparser setDelegate:(id <NSXMLParserDelegate>) parser]; 



    //initiates self.response THIS MAY NOT BE NEEDED 
    //response = [[NSMutableDictionary alloc]init]; 

    //parsing 
    BOOL success = [nsXmlparser parse]; 
    //error catch testing 
    if (success) { 
     NSLog(@"No errors"); 
    } 
    else { 
     NSLog(@"Error parsing document!"); 
    } 
    //dump 
    NSLog(@"ZOMG CHECK DIS OUT%@", [response description]); 
    return NO; 
} 

は基本的には、「ZOMGはDISチェックアウト」と述べのNSLogは、(null)を返していると私は理由を理解することはできません。コンパイルエラーもなく、プロパティ/合成も同様です。何か案は?

ありがとうございます。ああ、私のNSLogコメントを許してください。私はコードのさまざまな部分と区別しなければならなかったし、良い気分だった。

編集:私はAutomatic Reference Countingを使用しています。心配しないで、漏れはありません。

+1

2番目のコードスニペットはCardSetupViewControllerのものだと言いますが、XMLを処理するためのロジックがほとんどあるようです。私の前のポイントに加えて、あなたのレスポンスオブジェクトをどのように初期化しているかの表示もないので、このコントローラからより完全なコードを投稿してください。 – Perception

+0

2番目の部分の完全なメソッドを追加しました。 – Baub

+0

好奇心をそそり、 '[self.response description]'を使うと同じ結果になりますか? – nil

答えて

1

最初のコードブロックでCardSetupViewControllerを生成してからリークします。 2番目のコードブロックを実行しているオブジェクトとは無関係です。私はあなたの2番目のビューコントローラはあなたのNIBから来たと仮定しますか?

NSXMLParserも漏れていることに注意してください。

+0

それは漏れていません。それはクラス全体ではなくコードのスニペットです。 – Baub

+0

自動参照カウントを使用していると言われているので(たとえコメント内でしかコメントしていませんが)、漏れている可能性はほとんどありません。 – nil

+0

これは^です。申し訳ありませんが、私はそれを上に投げます。 – Baub

0

あなたの[response description]は、おそらくそれがおそらく、ZOMG CHECK DIS OUTの前に解放される自動リリースオブジェクトです。それを保持し、それが動作するかどうかを確認します。あなたがそれを完了したときにそれをリリースすることを忘れないでください。

+0

Xcodeで使用できません "保持"が利用できない:自動参照カウントモードでは利用できません "というエラーが発生しました。" – Baub

+0

これはNDAの下にあるiOS 5 Betaで実行していることを意味します。あなたの質問のためのより良い場所はApple Devフォーラムかもしれません。 – fzwo

+1

@fzwo:彼はNDAの機能を私が知る限り使用していないので、必ずしもそうは思わない。 ARCはLLVMの一部として公開されています。 – Chuck

関連する問題