当前位置:  编程技术>移动开发
本页文章导读:
    ▪获取装置当前使用的语种        获取设备当前使用的语种 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显然很隐蔽。

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3