【问题标题】:How do I display an integer from an NSArray on a UILabel?如何在 UILabel 上显示来自 NSArray 的整数?
【发布时间】:2013-03-05 03:43:40
【问题描述】:

我意识到这是一个愚蠢的初学者问题,但是当我按下按钮时,试图从我的数组中获取一个整数值以显示在标签上,我已经被困了至少一个小时。问题是标签一直显示“(null)”,不管我把标签放在什么索引上。我也试过去掉 NSArray 对象上的引号。 NSArray 中的对象是整数还是字符串并不重要,但我至少想知道如何将它们放入数组中的语法,因为我相信这是我的问题。如果没有,请告诉我。

我的代码: (.h 文件)

@property (strong, nonatomic) NSArray *redOneTeams;

(.m 文件)

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        _redOneTeams = @[
                   @"4351",
                   @"4298",
                   ];
        }
    return self;
}

- (IBAction)saveBtn:(id)sender {
    _teamNumber.text = [[NSString alloc] initWithFormat: @"%@", [_redOneTeams objectAtIndex:0]];
}

【问题讨论】:

  • 这个视图控制器是如何创建的?只需在您的saveBtn: 中说_teamNumber.text = @"works!" 即可将此问题分成两部分。然后我们知道问题是数组还是标签的出口。
  • 我的应用中有 30 个其他标签在显示 NSIntegers 时有效,我只是想让这个特定的标签有效。

标签: nsstring integer nsarray uilabel nsinteger


【解决方案1】:

您的问题有两种可能。

  1. 只需在initWithNibName 上设置一个断点并检查此方法是否正在触发。我觉得这种方法 不会以某种方式被调用。所以你的数组没有设置好。
  2. 如果您无法找出未调用 initWithNibName 的原因,则可以将代码转换为 viewDidLoad 方法。

试试这些东西,你可能会发现问题。

【讨论】:

    【解决方案2】:

    所以这里有几个选项:

    1- 将数字作为数字直接放入数组中:

    _redOneTeams = @[
                   @4351,
                   @4298,
                   ];
    

    这会被自动识别为文字/数字。如果你这样做,那么你可以调用它:

    - (IBAction)saveBtn:(id)sender 
    {
      _teamNumber.text = [[NSString alloc] initWithFormat: @"%i", [_redOneTeams objectAtIndex:0]];
    }
    

    2- 另一种更复杂的方式,但向您展示如何从 NSStrings 中解开数字:

    使用 NSString 元素声明数组,然后从 NSString 中获取值,如下所示:

    - (IBAction)saveBtn:(id)sender 
    {
      _teamNumber.text = [[NSString alloc] initWithFormat: @"%i", [[_redOneTeams objectAtIndex:0] intValue]];
    }
    

    希望对你有帮助

    【讨论】:

    • 啊,我明白了。 Xcode 自动更正为我的文本添加 @"%@"。谢谢!明天我会检查它是否有效。
    • 事实证明,我的数组甚至从未被初始化,即使我在苹果创建新页面时提供的代码中的自定义初始化中拥有它……奇怪。我最终在我的按钮按下方法中初始化了数组,它在那里工作。不过感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多