我的标签显示了一个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;
}
答案 0 :(得分: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;
}
答案 1 :(得分:0)
尝试这样就不需要取范围所有这些东西只需使用这个substringToIndex方法。
- (void)viewDidLoad { // not in viewDidUnload
StationName.text=temp;
if([StationName.text length]>10){
StationName.text=[StationName.text substringToIndex:10];
}
}
答案 2 :(得分:0)
你做错了。因为您想在viewDidLoad
中编写代码,但现在已经用viewDidUnload
编写了代码。你可以得到10个字符的字符串:
- (void)viewDidLoad
{
if ([temp length] >10)
{
temp = [temp substringToIndex:10];
}
StationName.text= temp;
}