2013-02-05 36 views
-3

兩個問題:如何使字符串數組

第一個問題:

我要作出這樣的字符串數組:

地區[1] =挪威; 資本[1] =奧斯陸;

國家[2] =德國; 首都[2] =柏林;

我怎樣寫代碼?這應該很簡單,但我不明白我見過的任何解釋。我想我想用一個NSArray,因爲我不想改變它們! 我想主要的問題是我怎麼聲明此陣!

第二個問題:

我能資本[2]在一個按鈕上的文字使用的例子嗎?這就像一個測驗,如果國家[2]是特定的國家,我希望這是一個選項。

/一個小白

+2

[閱讀文檔。他們解釋一切(https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Collections/Collections.html#//apple_ref/doc/uid/10000034i)。 – sosborn

+0

記憶痕跡是基於0的,所以它會是0,1;不是1,2. – WDUK

回答

6

最簡單的方式來聲明NSArray中的OBJ-c是這樣的:

NSArray *Countries = @[@"Norway", @"Germany"]; 
NSArray *Capitals = @[@"Oslo", @"Berlin"]; 

然後,您可以訪問這些指標以後使用[]符號:

[myButton setTitle:Capitals[1] forState:UIControlStateNormal]; 

記住陣列的編程語言0索引!這意味着第一個元素的索引爲0,第二個是指數1等等

+0

這段代碼不會編譯。您應該調用'[UIButton setTitle:forState:]'方法。 UIButton沒有名爲'title'的屬性。 –

+0

我總是忘了,而且是永遠的痛的屁股當我嘗試以編程方式更改我的按鈕 –

1

先回答

鑑於你的例子,你可以用數組文本實現它:

NSArray* countries = @[@"Norway", @"Germany"]; 
NSArray* capitals = @[@"Oslo", @"Berlin"]; 

但是,在省會城市都從國家脫鉤,有他們可能會不同步的可能性。一個更好的表現將是一個數組的詞典:

NSArray* countries = @[@{@"name":@"Norway", @"capital":@"Oslo"}, 
         @{@"name":@"Germany", @"capital":@"Berlin"}]; 

第二個答案

當然可以!假設你已經在屏幕上的UIButton,通過屬性button訪問。與原來的陣列,德國,你會使用:

[self.button setTitle:capitals[1] forState: UIControlStateNormal]; 

對於字典,你會使用:

NSDictionary* selectedCountry = countries[1]; 
NSString* country = selectedCountry[@"name"]; 
NSString* capital = selectedCountry[@"capital"]; 
[self.button setTitle:capital forState:UIControlStateNormal]; 
1
NSArray *country = @[@"Norway", @"Germany"]; 
NSArray *capital = @[@"Oslo", @"Berlin"]; 
NSString *capitalOfGermany = capital[1]; 

berlinButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[berlinButton setTitle:capitalOfGermany forState:UIControlStateNormal]; 
berlinButton.frame = CGRectMake(120, 200, 80, 20); 

[self addSubview:berlinButton]; 
1

這不是你想要一個字符串數組,這是字典的數組:

NSArray *countryArray = @[ @{@"Country" : @"Norway", @"Capital" : @"Oslo"}, 
         @{@"Country" : @"Germany", @"Capital" : @"Berlin"} ]; 

編輯我糾正變量聲明。

+0

好了,這似乎是一個更好的辦法!但是,當我只是複製你的代碼中,我得到的錯誤「初始化器元素不是一個編譯時間常數」,並警告「不兼容的指針類型初始化‘的NSDictionary * _strong’有型‘的NSArray *’。 表達我在做什麼錯誤:??2 P – Mangy92

+0

如何獲得的價值等會兒dict.Country [0]和dict.Capital [0]或什麼:) – Mangy92

+0

我可以在詞典中的第三個字符串,包含一個標誌文件。對於例如@「Flagfile」:@「Germany.png」,後來把它放在一個圖像視圖:) – Mangy92

相關問題