0

我的标签显示 Web 服务的一个字段。我想显示标签的 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一长串空格开始,因此最后您会在标签中获得十个空格。

缩短设置它的代码中的标签应该会更好:

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 回答
0

像这样尝试不需要范围所有这些东西只需使用这个 substringToIndex 方法。  

- (void)viewDidLoad { // not in viewDidUnload
    StationName.text=temp;
    if([StationName.text length]>10){
            StationName.text=[StationName.text substringToIndex:10];
        }

}
于 2013-05-09T09:33:54.250 回答
0

你这样做是不对的。因为您想在其中编写代码,viewDidLoad但现在您已经编写了viewDidUnload. 你可以得到这样的10个字符的字符串:

  - (void)viewDidLoad 
{
    if ([temp length] >10) 
    {
          temp = [temp substringToIndex:10];
    }

    StationName.text= temp;
}
于 2013-05-09T09:36:20.127 回答