Как локализовать все строки в массиве - PullRequest
1 голос
/ 25 мая 2010

У меня есть динамический массив строк, элементы которых я хотел бы локализовать. Есть ли способ локализовать строки без итерации, например, что-то вроде использования "makeObjectsPerformSelector". Спасибо

1 Ответ

2 голосов
/ 25 мая 2010

makeObjectsPerformSelector выполняет итерацию по массиву. Если вы хотите использовать это вместо более быстрого метода итерации, сделайте следующее:

@interface NSString (MyCategory)
-(void) localizeToArray:(NSMutableArray *)ioArray;
@end

@implementation NSString (MyCategory)
-(void) localizeToArray:(NSMutableArray *)ioArray {
  [ioArray addObject:[[NSBundle mainBundle] localizedStringForKey:self value:self table:nil]];
}
@end

@interface NSArray (MyCategory)
-(NSArray *) arrayWithLocalizedStrings;
@end

@implementation NSArray (MyCategory)
-(NSArray *) arrayWithLocalizedStrings {
  NSMutableArray *result = [NSMutableArray arrayWithCapacity:[self count]];
  [self makeObjectsPerformSelector:@selector(localizeToArray:) withObject:result];
  return result;
}
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...