0

ラベルに Web サービスの 1 つのフィールドが表示されます。10 文字のラベルを表示したいのですが、コードが機能しません。

didEndElement コード内:

  if ([elementName isEqualToString:@"StationName"] ) {
      StationName.text = retornoSOAP;
      returnSOAP = nil;
      tReturn = NO;    
  }

このコードは機能しています。StationName フィールドを StationName ラベルに表示します。

ここで私の間違いはどこですか?

  - (void)viewDidUnload {
         *NSString *temp =@"                                  ";

            if ([temp length] > 10) {
              NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
              temp = [temp substringWithRange:range];
            }

             StationName.text= temp;
    }
4

3 に答える 3

1

コードが機能しない理由として最も可能性が高いのは、コードを間違った場所で呼び出していることです。viewDidUnload通常、呼び出されるのが遅すぎて画面に表示されるものに影響を与えることができないため、適切な場所であるとは考えにくいです。さらにtemp、長い一連のスペースで開始するため、最終的にラベルにはちょうど 10 個のスペースが含まれます。

それを設定するコードのラベルを短くすると、はるかにうまく機能するはずです。

if ([elementName isEqualToString:@"StationName"] ) {
    *NSString *temp = retornoSOAP;
    if ([temp length] > 10) {
        NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 10}];
        temp = [temp substringWithRange:range];
    }
    StationName.text= temp;
    returnSOAP = nil;
    tReturn = NO;    
}
于 2013-05-09T09:32:20.763 に答える