如何将标签文本设置为NSMutableArray中的某些内容?

时间:2011-11-28 19:25:18

标签: xcode nsmutablearray label

我正在尝试了解如何在按下按钮时将标签设置为数组中的文本。当我按下按钮时,标签消失,然后什么都没有出现。代码中没有崩溃。

相关代码:

-(void)setupArray {

    wordArray = [[NSMutableArray alloc] init];
    [wordArray addObject:@"test1"];
    [wordArray addObject:@"test2"];
    [wordArray addObject:@"test3"];
}

- (IBAction)start:(id)sender {

    int value = (arc4random() % 3) + 1;

    self.typeThis.text = [self.wordArray objectAtIndex:value];

}

typeThis是标签名称,我想我已经连接了所有内容,即设置按钮/代理/等...我不明白为什么它不起作用。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

考虑到你已经正确绑定了所有内容并且你不在ARC之下。这可能会给你带来问题。 当您alloc wordArray时,您可以尝试使用以下代码段。

NSMutableArray tempArray = [[NSMutableArray alloc] init];
self.wordArray = tempArray;
[tempArray release];

如果您在ARC下,可以尝试self.wordArray = [NSMutableArray array];

然后将对象添加到self.wordArray,即[self.wordArray addObject:@"test1"];。以下是some explanation arc4random()

编辑: 以下是Automatic Reference Countingquote from the public iOS 5页面的公开规范:

  

Objective-C的自动引用计数(ARC)使内存成为可能   管理编译器的工作。通过使用新的Apple启用ARC   LLVM编译器,您永远不需要再次键入retain或release,   大大简化了开发过程,同时减少了开发过程   崩溃和内存泄漏。编译器完全了解   你的对象,并在它不再是瞬间释放它们   使用,所以应用程序运行速度与以往一样快,可预测,流畅   性能

可以检测ARC是否已启用。只需将以下代码段添加到任何需要ARC的文件中。

#ifndef __has_feature
  #define __has_feature(x) 0 /* for non-clang compilers */
#endif

#if !__has_feature(objc_arc)
  #error ARC must be enabled!
#endif

更多信息: http://clang.llvm.org/docs/LanguageExtensions.html#__has_feature_extension

HTH。

答案 1 :(得分:1)

你的'+1'给你一个1到3之间的结果,你的索引从0到2,所以我希望它在3中出错一次。

答案 2 :(得分:0)

这是ARC吗?如果是这样,wordArray是否声明为强?