UILabel.text无法从NSString(iOS)更改

时间:2016-01-07 14:07:11

标签: ios objective-c cocoa-touch nsstring

我尝试将nameUILabel)。文字更改为nameStringNSString)但它没有在屏幕上显示(它确实如此)更改 - 它是我调试时的值,它是正确的值)。

代码:

NSString *namesString = [self.names objectAtIndex:i];
infoWindow.storeAddressLabel.text = namesString;

注意:如果我输入:

infoWindow.storeAddressLabel.text=@"someText";

它有效

有人知道为什么吗?谢谢!

6 个答案:

答案 0 :(得分:2)

您引用了两个不同的变量。在第一行,您定义nameString,然后在下一行使用namesString设置额外的s

答案 1 :(得分:1)

如果$user->coupon_votes()->get(); [ { id: "2", // ... <-coupon info pivot: { user_id: "1", coupon_id: "2", vote: "1" } }, { id: "3", // ... <-coupon info pivot: { user_id: "1", coupon_id: "3", vote: "0" } } ] $coupon = Coupon::find(2); $coupon->coupon_votes()->get() [ { id: "1", // ... <- user info pivot: { coupon_id: "2", user_id: "1", vote: "1" } } ] 有效,那么infoWindow.storeAddressLabel.text=@"someText";对象就不是了。唯一的可能是从代码storeAddressLabel返回的字符串返回nil。请检查并验证。

感谢。

答案 2 :(得分:0)

试试看看会发生什么,

NSString *nameString=[sef.names objectAtIndex:i];

if( nameString!=nil && nameString.length >0){
   NSLog(@"nameString %@",nameString);
   infoWindow.storeAddressLabel.text=namesString;
}
else{
   infoWindow.storeAddressLabel.text=@"nameString variable was nil so I am being set as label text";
}

答案 3 :(得分:0)

在纠正上面包含许多错误的代码时,我写了以下答案:

NSString *nameString = [sef.names objectAtIndex:i];

if(nameString)
{
   infoWindow.storeAddressLabel.text = nameString;
}
else
{
   infoWindow.storeAddressLabel.text = @"nameString variable was nil so I am being set as label text";
}

答案 4 :(得分:0)

尝试使用类方法分配文本属性 - (首先检查nil为stringWithString:必须传递非零NSString)

infoWindow.storeAddressLabel.text = [NSString stringWithString:(NSString*)[self.names objectAtIndex:i]];

答案 5 :(得分:0)

如果 namesString 不是nil,则应显示.. 试试这个,

printf("%c", oneChar)