当前位置:  编程技术>移动开发
本页文章导读:
    ▪NSUserDefaults 储存数据        NSUserDefaults 存储数据        iphone在本地存储数据有三种方式:数据库、NSUserDefaults和文件。         NSUserDefaults用于存储数据量较小的数据,比如用户配置。        但并不是所有的.........
    ▪ 施用mac应该知道的技巧        使用mac应该知道的技巧1、使用Safari浏览网页的时候,如果你想把当前页面通过邮件发送给自己或别人,使用command+I,可以直接打开邮件并把当前网页附加到待发送的邮件中。 2、使用command+del.........
    ▪ 望源代码的经验总结       看源代码的经验总结PS: 从近段时间着手看代码的经验来看,自己通过跟前辈们的交流,总结出了以下两点经验。与君共享。 1.从少到多 所谓从少到多意思就是说,先从代码较少的应用开始.........

[1]NSUserDefaults 储存数据
    来源: 互联网  发布时间: 2014-02-18
NSUserDefaults 存储数据

        iphone在本地存储数据有三种方式:数据库、NSUserDefaults和文件。

        NSUserDefaults用于存储数据量较小的数据,比如用户配置。

       但并不是所有的数据类型都可以存储在其中,NSUserDefaults只支持以下几种数据类型:NSString, NSNumber, NSDate, NSArray, NSDictionary。而且,自定义的对象放在如NSArray中,再存储在NSUserDefaults中也是不行的(亲测,确实是的)。

        一、将数据存储到NSUserDefaults:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:_theSwitch.on forKey:@"switchValue"];
[userDefaults setObject:_textField.text forKey:@"inputValue"];


            二、读取NSUserDefaults中的数据:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
BOOL sw = [userDefaults boolForKey:@"switchValue"];
NSString *str = [userDefaults stringForKey:@"inputValue"];


          针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理(即新数据会覆盖旧的数据)。

         

      可以看出NSUserDefaults是非常好用的且方便的,但是有时候我们仍然需要存储一些自定义的对象,怎么办呢?

       NSUserDefaults 只能存储基本对象,如果是自定义的对象,转换成nsdata存储进去就可以了。

       网上有个方法:

       让这个自定义类实现协议中的- (id) initWithCoder: (NSCoder *)coder方法和- (void) encodeWithCoder: (NSCoder *)coder方法(obj-c的协议protocol就是java的接口interface,就是C++的纯虚函数),然后把该自定义的类对象编码到 NSData中,再从NSUserDefaults中进行读取。

粘代码:

       假设有这样一个简单的类对象

    @interfaceBusinessCard: NSObject{
        NSString*_firstName;
        NSString*_lastName;
    }
    @property(nonatomic,retain) NSString*_firstName;
    @property(nonatomic,retain) NSString*_lastName;
    @end;
    @implementationBusinessCard
    @synthesize_firstName,_lastName;
    -(void)dealloc{
        [_firstNamerelease];
        [_lastNamerelease];
        [superdealloc];
    }
    -(id)initWithCoder: (NSCoder*)coder
    {
        if(self= [super init])
        {
            self._firstName=[coder decodeObjectForKey:@"_firstName"];
            self._lastName=[coder decodeObjectForKey:@"_lastName"];
        }
        returnself;
    }
    -(void)encodeWithCoder:(NSCoder *)coder
    {
        [coderencodeObject:_firstNameforKey:@"_firstName"];
        [coderencodeObject:_lastNameforKey:@"_lastName"];
    }
    @end

然后再存取时通过NSData做载体:

    BusinessCard*bc= [[BusinessCard alloc]init];
    NSUserDefaults*ud= [NSUserDefaultsstandardUserDefaults];
    NSData*udObject= [NSKeyedArchiverarchivedDataWithRootObject:bc];
    [udsetObject:udObjectforKey:@"myBusinessCard"];
    [bcrelease];
    udObject=nil;
    udObject=[ud objectForKey:@"myBusinessCard"];
    bc=[NSKeyedUnarchiver unarchiveObjectWithData:udObject];

  

我照着这个方法,确实可以存储自定义的对象了。


 


    
[2] 施用mac应该知道的技巧
    来源: 互联网  发布时间: 2014-02-18
使用mac应该知道的技巧

1、使用Safari浏览网页的时候,如果你想把当前页面通过邮件发送给自己或别人,使用command+I,可以直接打开邮件并把当前网页附加到待发送的邮件中。

2、使用command+delete删除文件,彻底删除,使用shift+command+delete就会自动清空废纸篓

3、想知道某个目录下各个文件和子目录各占多少空间,终端输入 du -sh * 。

4、在Finder中打开文件使用鼠标双击或command+O。

5、在终端里输入ls -a,可以显示该目录下的隐藏文件。
    在Finder中输入shift+command+.可以显示隐藏文件,想恢复原来的设置,再输入一遍shift+command+.即可

6、Spotlight是OSX自带的强力搜索工具,可以进行全方位搜索。借助 Spotlight,可以在键入文字信息时就在开始电脑上查找任何内容。可以查找文稿、电子邮件、应用程序、歌曲、联系人等,还可以通过设置获得快速定义或执行简单数学计算。默认热键是Ctrl+Space。

7、推荐smcFanControl,Macbook专用风扇控制软件,免费。夏天空调屋里一般3000-4000转就够了,冬天一般不需要开启。

8、解压软件 The Unarchiver。很好用的。

9、利用你的触发角

OS X系统为用户提供了强大的Mission Control功能,今天为大家介绍其中的触发角。打开系统偏好设置-Mission Control-触发角,就可以对屏幕的四个角进行设置了。比如把左上角设置为将显示器置为睡眠状态,当我们暂时离开电脑时,顺手把鼠标移到左上角,屏幕就变黑了,非常方便。

10、维护你的mac sudo periodic daily weekly monthly。

11、OS X提供了非常方便的截图工具,你可以随时随地截取屏幕画面。
shift+command+3:全屏幕截图;shift+command+4:通过鼠标选取截图。
截取的图片默认存放在桌面上,以时间命名。
系统默认截图格式是png,你可以通过如下命令修改截图文件类型,例如:
defaults write com.apple.screencapture type -string JPEG

12、shift + 6可以输入表情符号,比如(☆_☆)凸^-^凸

13、当你想在新的标签页打开网页时,只需要按住command键,点击链接即可。

14、通过shift+command+左右方向键,可以快速在Safari中打开的标签中进行切换。

15、比如有一个场景,你在一个目录下林林总总放了几百个文件,有图片有pdf有zip有doc等等,你想把后缀为png、jpeg、gif的图片复制到另一个文件夹去,最简单的方式是什么?

而是进入该目录,执行这样一个命令:

cp *.png *.jpeg *.gif /destpath

如果想剪切,就把cp改为mv


在网上看一日志,将自己觉得需要的整理出来。原文地址附上  http://my.oschina.net/u/819843/blog/100159。






    
[3] 望源代码的经验总结
    来源: 互联网  发布时间: 2014-02-18
看源代码的经验总结

PS: 从近段时间着手看代码的经验来看,自己通过跟前辈们的交流,总结出了以下两点经验。与君共享。


1.从少到多

所谓从少到多意思就是说,先从代码较少的应用开始看起,比如先看500l的,再看1000l,再看2000l,5000l,8000l,然后看上万的甚至十万几十万百万行的代码

2.先整体,后局部

就是看的时候,先从大致框架上看,也就是泛读。先有一个整体的轮廓,大致知道每一块儿是做什么的;然后,在具体到每一个细节去看,小道某个api的具体应用,为什么那么用,甚至,一条逻辑语句也要搞明白,为什么这样写,而不是那么写。





    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android中通过view方式获取当前Activity的屏幕截... iis7站长之家
▪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