在哪里定义NSArray以及在哪里定义Button动作?

时间:2014-05-11 12:04:25

标签: objective-c nsarray

我已经制作了一个文本字符串数组,并希望通过按下按钮的方式将它们拉出来。所以我有两个不同的功能/方法,按钮和滑动方法。

在哪里以及如何定义数组以便这些方法可以引用它?它应该是一个外部NSArray' ?

我已在外部http://s1.postimg.org/b2e3m4v67/Sk_rmbillede_2014_05_11_kl_15_48_28.png上传了完整代码的图片 不确定这是否违反了某些规则(?)

1 个答案:

答案 0 :(得分:0)

您希望在按住滑动/按钮时更改报价。

在按下/滑动按钮的方法中,您将VC的label属性的text属性设置为Quoteselected。并且它看起来像Quoteselected是数组引号的随机元素 - 或者至少可能它是,因为随机数可能是6-10,并且你在那些索引的Quotes数组中没有任何对象 - 所以如果那些数字是由随机函数生成的,您的程序将因索引超出范围错误而崩溃。

您可能想要做的是在每次用户交互时生成一个新的随机数,然后在此时将Quoteselected的值更改为该数组索引处的对象。然后将其分配给标签的文本属性。

就定义数组而言 - 我不会像你那样做。你得到的是一个“ivar”,一个实例变量。在iOS上,这些通常是属性。因为它是一个外部类不需要知道的“私有”数组,所以我将它声明为类扩展的一部分。

所以,

@interface BOViewController()
@property NSArray *quotes;
@end

另请注意我的大写更改,这是更好的风格。

所以现在你已经声明了一个数组属性,但是它没有数据。这取决于您创建View Controller实例的方式。假设你在故事板中完成它,它会进入awakeFromNib:或viewDidLoad :(如果你自动实例化了VC,你可以把它放在initWithNibName:方法中)。

- (void)viewDidLoad {
   [super viewDidLoad];

   self.quotes = @[@"Test", @"Number 3"...];

然后当你想在类的其他部分引用数组时:

self.label.text = self.quotes[0];

请注意,您现有的代码应该可以使用,它不是典型的Cocoa编码风格。