摘要: //初始化TableView时设置self.tv.estimatedRowHeight=54;self.tv.rowHeight=UITableViewAutomaticDimension; 阅读全文
posted @ 2015-10-23 10:55 LiLM 阅读(159) 评论(0) 推荐(0) 编辑
摘要: //计算缓存大小[SDImageCache sharedImageCache] getSize]//清理缓存SDImageCache *sd = [[SDImageCache alloc]init];[sd clearMemory];[sd cleanDisk];[sd clearDisk]; 阅读全文
posted @ 2015-10-23 10:49 LiLM 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1.选中目标控制器 2.选择xcode的工具栏中的"Editor"->"Embed in"->"Navigation Controller" 或者"Tab Bar Controller"(如果"Navigation Controller" 或者"Tab Bar Controller"置灰则说明目标控 阅读全文
posted @ 2015-10-08 17:50 LiLM 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的独立单位 线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可以和 阅读全文
posted @ 2015-08-11 14:54 LiLM 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 使用字典的坏处: 字典的存取一般都是用字符串类型的key,在编写过程中没有任何提示,稍不注意就会造成key值的拼写错误 使用模型的好处: 通过模型来读取数据,编辑器会给出相应的提示,提高了编码的效率 可以很容易修改某个属性的值和增加一个附加值(用于判断状态是否被选中) 阅读全文
posted @ 2015-08-09 16:29 LiLM 阅读(154) 评论(0) 推荐(0) 编辑
摘要: atomic只是保证了操作的原子性,原子操作即一个操作不可再分。 atomic只是对读写操作进行了加锁,保证了多线程开发时一个读写操作完成之后才能进行下一个读写操作 atomic和线程安全没有太大的关系,举例:如果A,B,C都在进行写的操作,D进行读操作,D就会读取到随机的值(ABC不清楚谁修改的) 阅读全文
posted @ 2015-08-08 17:57 LiLM 阅读(448) 评论(0) 推荐(0) 编辑
摘要: iPad的tabBarController会在底部居中显示,根据不同的需求可能需要把tabBarItem均匀分布显示,具体修改如下 self.tabBar.itemPositioning = UITabBarItemPositioningCentered; //以下2个属性需要设置Centered样 阅读全文
posted @ 2015-07-31 14:08 LiLM 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 引入的是#import <MediaPlayer/MediaPlayer.h>头文件和MediaPlayer.framework 区别:MPMoviePlayerViewController里面包含了一个MPMoviePlayerController - (void)viewDidLoad { [s 阅读全文
posted @ 2015-07-29 11:07 LiLM 阅读(233) 评论(0) 推荐(0) 编辑
摘要: copy是浅拷贝即指针拷贝,让对象的引用计数加一 在MRC环境下,=只是简单的指针指向,引用对象的引用计数并不会增加,在用局部变量赋值时很容易出现野指针 在ARC环境下,=的效果等同于copy和retain。具体实现都是编辑器帮我们做的 阅读全文
posted @ 2015-06-09 11:45 LiLM 阅读(165) 评论(0) 推荐(0) 编辑
摘要: iOS设备中的Keychain是一个安全的存储容器。通常情况下,可以用NSUserDefaults存储数据信息,但是对于一些私密信息,比如账号、密码等等,就需要使用更为安全的keychain了。苹果自己用keychain来保存Wi-Fi网络密码,VPN凭证等等。它是一个sqlite数据库,位于/pr 阅读全文
posted @ 2015-03-08 15:59 LiLM 阅读(758) 评论(0) 推荐(0) 编辑