2011-11-28 33 views
0

我想了解如何将按钮设置为数组中文本的标签。当我按下按钮时,标签消失,然后什么也没有出现。代码中没有崩溃。如何将标签文本设置为NSMutableArray中的某些内容?

相关代码:

-(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是标签的名字,我想我已经迷上了一切,即建立按钮/代表的/ etc ...我不明白为什么它不是没有工作。任何人都可以帮忙吗?

+0

在IBAction方法中设置一个断点并检查它是否被命中。继续浏览它并看到该值已填充,然后是否从数组中提取任何内容。 – Luke

+0

@Huddy BUddy - 根据我迄今为止看到的答案,我相信你应该让我们知道你是否使用ARC。最简单的方法是:您是否手动在对象上执行“保留”和/或“发布”?如果你是,那么你不使用ARC。 ARC代表自动参考计数。 – 5StringRyan

+0

我正在使用ARC,因为我没有使用发布/保留的东西 –

回答

1

你的“+1”是给你一个结果1和3之间,你的指数是从0到2,所以我希望它会出问题一次在3

+0

我已经改变了,它仍然无法正常工作,价值正在计算好 –

0

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

+0

我不知道ARC是什么,你怎么样检查?另外,是的,我宣称它很强壮,我应该做弱吗? –

+0

如果你正在保留/释放你自己,那么你没有使用ARC。如果你选择使用ARC,它会为你添加它们。请参阅http://longweekendmobile.com/2011/09/07/objc-automatic-reference-counting-in-xcode-explained/ – tarmes

+0

然后不要使用ARC,因为我不会执行发布声明等。 –

2

考虑到你已经正确地绑定了一切,你不在ARC之下。这是一件可能会导致你的问题。 当你是alloc ating wordArray你可以尝试使用下面的代码片段。

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

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

然后将对象添加到self.wordArray[self.wordArray addObject:@"test1"];。这里是some explanationarc4random()

编辑: 下面是Automatic Reference Counting公共规范和quote from the public iOS 5页:对Objective-C的

自动引用计数(ARC),使内存 管理的编译器的工作。通过使用新的Apple LL LLVM编译器启用ARC,您将永远不需要键入保留或释放, 大大简化了开发过程,同时减少了 崩溃和内存泄漏。编译器对你的对象有一个完整的理解,并且在不再使用 时释放每个对象,所以应用程序运行速度与以前一样快,具有可预测的,平滑的性能。

可以检测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。

+0

什么是ARC,你如何检查你是否在ARC之下? –

+0

检查我的编辑。 –

+0

谢谢,当我回来时我会试试这个。谢谢。 –

相关问题