2011-02-23 33 views
3

文件,你怎麼會做這樣的:我應該如何做到這一點? (啓動大的NSMutableArray)「只是爲了好玩」這下

currencyLabels = [[NSMutableArray alloc] initWithObjects:@"Canadian Dollars", @"Euros", @"British Pounds", @"U.S. Dollars", @"United Arab Emirates Dirhams", @"Afghanistan Afghanis", @"Albania Leke", @"Armenia Drams", @"Netherlands Antilles Guilders", @"Angola Kwanza", @"Argentina Pesos", @"Aruba Guilders/Florins", @"Azerbaijan Manats", @"Bosnia/Herzegovina Convertible Marka", @"Barbados Dollars", @"Bangladesh Taka", @"Bulgaria Leva", @"Bahrain Dinars", @"Burundi Francs", @"Bermuda Dollars", @"Brunei Darussalam Dollars", @"Bolivia Bolivianos", @"Brazil Brazil Real", @"Bahamas Dollars", @"Bhutan Ngultrum", @"Botswana Pulas", @"Belarus Rubles", @"Belize Dollars", @"Congo/Kinshasa Congolese Francs", @"Switzerland Francs", @"Chile Pesos", @"China Yuan Renminbi", @"Colombia Pesos", @"Costa Rica Colones", @"Cuba Pesos", @"Cape Verde Escudos", @"Cyprus Pounds", @"Czech Republic Koruny", @"Djibouti Francs", @"Denmark Kroner", @"Dominican Republic Pesos", @"Algeria Algeria Dinars", @"Estonia Krooni", @"Egypt Pounds", @"Eritrea Nakfa", @"Ethiopia Birr", @"Fiji Dollars", @"Falkland Islands Pounds", @"Georgia Lari", @"Guernsey Pounds", @"Ghana Cedis", @"Gibraltar Pounds", @"Gambia Dalasi", @"Guinea Francs", @"Guatemala Quetzales", @"Guyana Dollars", @"Hong Kong Dollars", @"Honduras Lempiras", @"Croatia Kuna", @"Haiti Gourdes", @"Hungary Forint", @"Indonesia Rupiahs", @"Israel New Shekels", @"Isle of Man Pounds", @"India Rupees", @"Iraq Dinars", @"Iran Rials", @"Iceland Kronur", @"Jersey Pounds", @"Jamaica Dollars", @"Jordan Dinars", @"Japan Yen", @"Kenya Shillings", @"Kyrgyzstan Soms", @"Cambodia Riels", @"Comoros Francs", @"North Korea Won", @"South Korea Won", @"Kuwait Dinars", @"Cayman Islands Dollars", @"Kazakhstan Tenge", @"Laos Kips", @"Lebanon Pounds", @"Sri Lanka Rupees", @"Liberia Dollars", @"Lesotho Maloti", @"Lithuania Litai", @"Latvia Lati", @"Libya Dinars", @"Morocco Dirhams", @"Moldova Lei", @"Madagascar Ariary", @"Macedonia Denars", @"Myanmar (Burma) Kyats", @"Mongolia Tugriks", @"Macau Patacas", @"Mauritania Ouguiyas", @"Malta Liri", @"Mauritius Rupees", @"Maldives Rufiyaa", @"Malawi Kwachas", @"Mexico Pesos", @"Malaysia Ringgits", @"Mozambique Meticais", @"Namibia Dollars", @"Nigeria Naira", @"Nicaragua Cordobas", @"Norway Krone", @"Nepal Nepal Rupees", @"New Zealand Dollars", @"Oman Rials", @"Panama Balboa", @"Peru Nuevos Soles", @"Papua New Guinea Kina", @"Philippines Pesos", @"Pakistan Rupees", @"Poland Zlotych", @"Paraguay Guarani", @"Qatar Rials", @"Romania New Lei", @"Serbia Dinars", @"Russia Rubles", @"Rwanda Rwanda Francs", @"Saudi Arabia Riyals", @"Solomon Islands Dollars", @"Seychelles Rupees", @"Sudan Dinars", @"Sweden Kronor", @"Singapore Dollars", @"Saint Helena Pounds", @"Slovenia Tolars", @"Slovakia Koruny", @"Sierra Leone Leones", @"Somalia Shillings", @"Seborga Luigini", @"Suriname Dollars", @"El Salvador Colones", @"Syria Pounds", @"Swaziland Emalangeni", @"Thailand Baht", @"Tajikistan Somoni", @"Turkmenistan Manats", @"Tunisia Dinars", @"Tonga Pa'anga", @"Turkey New Lira", @"Trinidad and Tobago Dollars", @"Tuvalu Dollars", @"Taiwan New Dollars", @"Tanzania Shillings", @"Ukraine Hryvnia", @"Uganda Shillings", @"Uruguay Pesos", @"Uzbekistan Sums", @"Venezuela Bolivares", @"Viet Nam Dong", @"Vanuatu Vatu", @"Samoa Tala", @"Silver Ounces", @"Gold Ounces", @"East Caribbean Dollars", @"Palladium Ounces", @"Platinum Ounces", @"Yemen Rials", @"South Africa Rand", @"Zambia Kwacha", @"Zimbabwe Dollars",nil]; 

這是一個靜態list..never變化。將其用於「查找」式細節視圖。

我期待着你的想法。 :)

+6

如果它從不改變,爲什麼它是可變的? :) – 2011-02-23 01:02:30

+2

糟糕的編碼習慣,當然! – clifgriffin 2011-02-23 01:09:08

回答

6

即使它「永遠不會改變」(順便說一句,順便說一下),我會把它扔到一個屬性列表中,並使用arrayWithContentsOfFile:將它讀入一個靜態變量。這使得它更具可讀性,並可能讓您將其用於其他事情。

+0

是的,而實際上「永不改變」可能是一種誇張。它來自不通過其API公開該列表的第三方。 (boo) – clifgriffin 2011-02-23 01:08:43

1

我還不確切地知道你希望是什麼樣的答案?如果是代碼急促那麼這種做法將有助於:

NSString *list = @"Canadian Dollars|Euros|British Pounds..."; 
NSArray *listItems = [list componentsSeparatedByString:@"|"]; 

您也可以將您的列表項保存到每一個文本文件進入在線。同時加載該文件字符串和換行符分開吧,讓您的項目

+0

短小,創造力,正確性。一切美好的事物。 :) – clifgriffin 2011-02-23 01:11:00

+1

我要去找一個plist。 – 2011-02-23 01:12:01

2

currencyLabels = [[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"currencyLabels" ofType:@"plist"]] retain];

數據驅動的,因爲沒有必要硬編碼的配置是這樣,它應該有可能改變這種類型的數據,而不更改代碼。通過NSBundle載入,以便您可以根據需要對plist進行本地化。保留以匹配示例中顯示的對象所有權。

+0

如果你想要一個帶有文件內容的非自動釋放數組,你應該使用'[[NSArray alloc] initWithContentsOfFile:path];'。像這樣使用'retain'是混淆的祕訣,這會導致內存管理錯誤。 – 2011-02-23 01:35:37

+0

好的一點,當我意識到我的對象所有權將與原始帖子不同時,我只是拋出了保留。如果保留是合適的,那麼'initWithContentOfFile:'會更清潔。 – Jonah 2011-02-23 01:44:34

相關問題