当前位置: 编程技术>移动开发
本页文章导读:
▪获取装置当前使用的语种 获取设备当前使用的语种
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog(@"%@", currentLanguage);.........
▪ View与SurfaceView的差异 View与SurfaceView的区别
转载地址:http://wsqwsq000.iteye.com/blog/1120731
SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。那.........
▪ 应用dictionaryWithObjectsAndKeys时的注意事项 使用dictionaryWithObjectsAndKeys时的注意事项
有这样一段代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
NSDictionary* items2=[NSDictionary dictionaryWithObjectsAndKeys:
[d .........
[1]获取装置当前使用的语种
来源: 互联网 发布时间: 2014-02-18
获取设备当前使用的语种
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; NSString *currentLanguage = [languages objectAtIndex:0]; NSLog(@"%@", currentLanguage);
1 楼
hhb19900618
2011-12-07
这个下标为0是什么语言啊?
[2] View与SurfaceView的差异
来源: 互联网 发布时间: 2014-02-18
View与SurfaceView的区别
转载地址:http://wsqwsq000.iteye.com/blog/1120731
SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。
那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。
当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要surfaceView中thread处理,一般就需要有一个event queue的设计来保存touch event,这会稍稍复杂一点,因为涉及到线程同步。
所以基于以上,根据游戏特点,一般分成两类。
1 被动更新画面的。比如棋类,这种用view就好了。因为画面的更新是依赖于 onTouch 来更新,可以直接使用 invalidate。 因为这种情况下,这一次Touch和下一次的Touch需要的时间比较长些,不会产生影响。
2 主动更新。比如一个人在一直跑动。这就需要一个单独的thread不停的重绘人的状态,避免阻塞main UI thread。所以显然view不合适,需要surfaceView来控制。
[3] 应用dictionaryWithObjectsAndKeys时的注意事项
来源: 互联网 发布时间: 2014-02-18
使用dictionaryWithObjectsAndKeys时的注意事项
有这样一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
NSDictionary* items2=[NSDictionary dictionaryWithObjectsAndKeys: [d objectForKey:@"GZDBH"],@"工作单编号", [d objectForKey:@"LDSJ"],@"来电时间", [d objectForKey:@"SLWCSJ"],@"受理完成时间", [d objectForKey:@"SLR"],@"受理人", [d objectForKey:@"ZJHM"],@"主叫号码", [d objectForKey:@"LXR"],@"联系人", [d objectForKey:@"LXDH"],@"联系电话", [d objectForKey:@"BXDZ"],@"报修地址", [d objectForKey:@"CLLX"],@"故障类型", [d objectForKey:@"JRLX"],@"接入类型", [d objectForKey:@"CLQY"],@"处理区域", [d objectForKey:@"FWJB"],@"服务级别", [d objectForKey:@"JJCD"],@"紧急程度", [d objectForKey:@"YXFW"],@"影响范围", [d objectForKey:@"QKMS"],@"受理情况", nil];
但是后来发现items2中始终只有一个对象“工作单编号“,检查后发现,其中“来电时间”对象是空,而dictionaryWithObjectsAndKeys方法在遇到nil对象时,会以为是最终的结束标志。于是items中只放了一个对象就初始化结束了,而且不管编译和运行中都不会报错,这样的bug显然很隐蔽。
最新技术文章: