1

UILabel のテキストを設定する必要があるこの XML パーサー クラスがあります。何らかの理由で、XML 解析クラスから外部 (外部カスタム メソッドは ViewController にあります) カスタム メソッドを呼び出すと、ラベル テキストを変更できません。NSLogging が機能するか、UIAlert が機能するなど、他のものはすべて機能します。
コードはそれをやろうとしています:
XML Parsing class

-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
    if([elementName isEqualToString:@"names"]){
        NSLog(@"Found names body");

    }
    else if ([elementName isEqualToString:@"user"]){

 array = [attributeDict objectForKey:@"nameofuser"];
        ViewController * main = [[ViewController alloc] init];
        [main outputToLabel:array];

    }
    NSLog(@"Reading value: %@", elementName);
}


これは私のViewControllerカスタムメソッドです:

-(void) outputToLabel:(NSArray *) dict{

    NSLog(@"seting %@ srcds", dict);
    // XML stuff here \/

NSLog(@"%@", dict);

       //                 /\

    this.text = @"Complete";
}

値とすべてを正しくNSLogします...ラベルテキストを設定できません。そのコードを viewDidLoad で使用でき、正常に動作します。何か案は?

4

1 に答える 1

1
    ViewController * main = [[ViewController alloc] init];
    [main outputToLabel:array];

ViewController の新しいインスタンスを作成し、その中にラベルを設定しています。ViewController の「実際の」インスタンスは、このアクションの影響を受けません。

于 2013-01-23T03:12:44.637 に答える