我已经制作了一个文本字符串数组,并希望通过按下按钮的方式将它们拉出来。所以我有两个不同的功能/方法,按钮和滑动方法。
在哪里以及如何定义数组以便这些方法可以引用它?它应该是一个外部NSArray' ?
我已在外部http://s1.postimg.org/b2e3m4v67/Sk_rmbillede_2014_05_11_kl_15_48_28.png上传了完整代码的图片 不确定这是否违反了某些规则(?)
答案 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编码风格。