2013-11-30 5 views
2

Я занимаюсь разработкой приложения iOS и только что развивался в android. В android можно хранить строки и массивы строк в файле ресурсов, а затем ссылаться на них позже. Это делает реальный код намного опрятным. Есть ли способ сделать это в iOS?R.array.string эквивалент в iOS

ответ

3

Вы можете хранить данные в PLIST, а затем десериализации его в словарь (или даже просто массив, если вам не нужно быть гибкими) , Для документации смотрите документацию класса на NSPropertyListSerialization в https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSPropertyListSerialization_Class/Reference/Reference.html#//apple_ref/occ/clm/NSPropertyListSerialization/propertyListWithData:options:format:error:

Например, если вы имели следующий Plist файл с именем my_resources.plist:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>MyStringArray</key> 
    <array> 
     <string>String One</string> 
     <string String Two</string> 
    </array> 
</dict> 
</plist> 

Вы можете загрузить его (если это в комплекте) :

NSError* error = nil; 
NSURL* resourceFile = [[NSBundle mainBundle] URLForResource:@"my_resources" withExtension:@"plist"]; 
NSData* resourceData = [NSData dataWithContentsOfURL:resourceFile option:0 error:&error]; 
if (resourceData) { 
    NSDictionary* resources = [NSPropertyListSerialization propertyListWithData:resourceData options:0 format:NULL error:&error]; 
    if (resources) { 
    NSArray* myArray = resources[@"MyStringArray"]; 
    NSString* stringOne = myArray[0]; // returns "String One" 
    NSString* stringTwo = myArray[1]; // returns "String Two" 
    // do something with the resources 
    } else { 
    NSLog(@"Error: Could not read plist data from %@: %@", resourceFile, error); 
    } 
} else { 
    NSLog(@"Error: Could not read file data at %@: %@", resourceFile, error); 
} 
1

Проверить NSLocalizedString.

Ключ/значение строки, которые могут быть использованы для локализации

Смежные вопросы