2014-05-11 52 views
0

我已經做了一個文本字符串的數組,並希望通過按下一個按鈕,只要按一下就可以將它們拉出到標籤中。所以我有兩個不同的功能/方法,按鈕和滑動方法。在哪裏定義NSArray以及在哪裏定義按鈕操作?

我在哪裏以及如何定義數組,以便這些方法可以引用它?它應該是'外部NSArray'嗎?

我已上載的全碼外http://s1.postimg.org/b2e3m4v67/Sk_rmbillede_2014_05_11_kl_15_48_28.png 不知道但如果這是一些規則違反了這裏(?)

+1

網上有很多這樣的聲明的教程和代碼示例。你試圖找到那些? – dasdom

+0

已經嘗試過搜索是的。但是我發現很難找到準確的東西。一個線程建議在頭文件中定義變量,但是當我嘗試運行它時,導致應用程序失敗 - 所以我跳過了這種方式。 – Simon

+0

任何鏈接將不勝感激。我一直在尋找一個小時,找不到太多有用的東西。 – Simon

回答

0

你想要的報價來改變刷卡/按鈕按下圖像。

在你的按鈕按/刷卡方法你將VC的標籤屬性的文本屬性設置爲Quoteselected。它看起來像Quoteselected是數組Quotes中的一個隨機元素 - 或者至少也許是這樣,因爲隨機數可能是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編程風格。

+0

問題中的代碼來處理,我得到了你在那裏提出的建議。但我真正需要的是能夠一勞永逸地聲明/定義我的Array(和2個變量),然後能夠在代碼中稍後參考它。 我認爲這將會更容易,因爲即使我嘗試以自己的方式嘗試,我根本不知道在哪裏放置代碼的不同部分。到目前爲止,在我的項目中,我只用一個方法使用了我的變量 - 所以我從來沒有必須擁有多個方法才能訪問一個變量 – Simon

+0

難道不可能定義一個全局數組:任何數量的方法都可以引用? – Simon

+0

將更新我的答案。 – bpapa