Я занимаюсь разработкой приложения iOS и только что развивался в android. В android можно хранить строки и массивы строк в файле ресурсов, а затем ссылаться на них позже. Это делает реальный код намного опрятным. Есть ли способ сделать это в iOS?R.array.string эквивалент в iOS
2
A
ответ
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.
Ключ/значение строки, которые могут быть использованы для локализации
Смежные вопросы
- 1. System.IO.Path эквивалент в iOS
- 2. Эквивалент фрагмента (android) в iOS
- 3. Эквивалент iOS NSNotificationCenter в Android?
- 4. iOS SegmentedControl эквивалент в Android
- 5. iOS UILabel эквивалент в Android?
- 6. эквивалент startactivity & finish в ios?
- 7. iOS эквивалент BackgroundFetch в Android
- 8. эквивалент tex2Dproj в металле iOS
- 9. Android-эквивалент NSUserDefaults в iOS
- 10. эквивалент cURL в Swift - iOS
- 11. iOS эквивалент Android BroadcastReceiver?
- 12. iOS эквивалент этих преобразований
- 13. ProgressDialog-эквивалент для iOS
- 14. Android-эквивалент iOS beginIgnoringInteractionEvents
- 15. iOS эквивалент Android SharedPreferences
- 16. iOS эквивалент NFC AAR
- 17. NSGradient drawInBezierPath iOS эквивалент
- 18. Android-эквивалент iOS dispatch_after
- 19. эквивалент iOS для onRestart()
- 20. iOS Эквивалент SecTransformRef?
- 21. iOS эквивалент oppvv's warpPerspective?
- 22. Android: iOS UIActionSheet эквивалент
- 23. IOS - SQLite - Есть BIT_COUNT эквивалент
- 24. iOS/Swift Эквивалент Android LayoutInflation
- 25. Sencha touch эквивалент iOS UIViewContentModeScaleAspectFit
- 26. iOS Эквивалент для Android TabLayout
- 27. JavaFXPorts на IOS - эквивалент FXActivity
- 28. Эквивалент шифрования spongycastle для ios
- 29. Что такое iOS-эквивалент холста?
- 30. Backendless IOS: присоединиться эквивалент найти