- 如何将产品进行多语言发布?
NSMutableArray *array = [[NSMutableArray alloc]init];
// 向敏感字数组里添加元素
NSString *element1 = @"敏感字";
NSString *element2 = @"我";
[array addObject:element1];
[array addObject:element2];
// 要判断的字符串
NSMutableString *str = [[NSMutableString alloc]initWithString:@"我是敏感字"];
for (int i = 0; i < array.count; i++) {
// 敏感字替代字符串
NSMutableString *replaceString = [[NSMutableString alloc]init];
// 判断字符串是否包含指定字符串,返回位置和长度
NSRange range = [str rangeOfString:array[i]];
for (int j = 0; j<range.length; j++) {
[replaceString appendString:@"*"];
}
// 某个范围用字符代替
[str replaceCharactersInRange:range withString:replaceString];
}
NSLog(@"%@",str);
+ (Singleton *)sharedInstance
{
static Singleton *_instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[self alloc] init];
});
return _instance;
}
5 说说响应链
首先要明确的是:在IOS中,有响应者链对事件进行响应,所有的响应类都是UIResponder的子类,响应者链是由不同的对象组成的层次结构,其中的每一个对象将依次获得响应事件消息的机会。
响应者链的过程:
当事件发生的时候,响应链首先被发给第一个响应者(往往是事件发生的视图,也就是用户触摸屏幕的地方)事件将沿着响应者链一直传递下去,直到被接受并处理。一般来说,第一响应是视图对象或者其子类,当其被触摸后事件就交它处理,如果它不处理,事件就会被传递给视图控制器UIViewController(如果存在)然后是它的父视图,以此类推直到顶层视图。接下来会沿着顶层视图(top View)到窗口(UIWidow对象)再到程序的UIApplication对象 ,如果整个过程没有响应这个事件,则该事件被丢弃。一般情况下,在响应者链中只要有对象处理事件,事件就会传递
经典响应路线图
First Responser->The Window ->The Application->App Delegate
正常的响应者链流程经常被委托打断,一个对象可能将响应工作委托给另一个对象来完成(通茶是视图控制器 viewController)