随笔分类 - iOS开发笔记
摘要:在OC当中,属性是对字段的一种特殊封装手段。在编译期,编译器会将对字段的访问替换为内存偏移量,实质是一种硬编码。如果增加一个字段,那么对象的内存排布就会改变,需要重新编译才行。OC的做法是,把实例变量当做一种存储偏移量所用的特殊变量交给类对象来管理,偏移量会在运行期动态查找,这样无论何时访问实例变量...
阅读全文
摘要:AlertView的show方法执行后,后面的代码会继续运行,而不会等待用户按键结束再走,这样,如果把弹出的代码写在一个BOOL函数里,没等用户确认直接返回NO就惨了,解决方法: 1 - (BOOL)beforeBackButtonClickEvent { 2 UIAlertView *al...
阅读全文
摘要:前一阵子做了iOS集成新浪微博SDK并实现部分功能的工作,这里正好将事后反思的内容总结一下,欢迎喷冷水。 假定需求是这样:在已经使用微博登陆的前提下,查找一个人的所有好友,筛选出其中年龄、性别等属性符合一定规则的人,然后查找这些人所有的微博,将这些微博按照一定的条件组织并且展示。 首先说明一下,查...
阅读全文
摘要:进入后台时,iOS给了我们10分钟的时间做一些事件处理。AppDelegate.h:1 #import 2 3 @interface AppDelegate : UIResponder 4 5 @property (assign, nonatomic) UIBackgroundTaskIdentif...
阅读全文
摘要:GCD是iOS的一种底层多线程机制,今天总结一下GCD的常用API和概念,希望对大家的学习起到帮助作用。GCD队列的概念在多线程开发当中,程序员只要将想做的事情定义好,并追加到DispatchQueue(派发队列)当中就好了。派发队列分为两种,一种是串行队列(SerialDispatchQueue)...
阅读全文
摘要:显然在某些情况下我们很希望减少移动设备和网络的交互次数,这就需要使用iOS的内存缓存了。代码基本上没有什么需要解释的地方,注意不要乱缓存,注意根据需要清理缓存即可。 1 //构建请求 2 NSURL *url = [NSURL URLWithString:@"http://218.2...
阅读全文
摘要:先吐槽一下这个标题,空格略蛋疼,不像中文,但是不写空格看上去则更诡异,求解决方案……NSTimer会retain它的target,这样如果在控制器当中定义一个NSTimer,target指定为self,则会引起循环引用。解决方案和防止block引用self一样,第一步需要把NSTimer的操作封装到...
阅读全文
摘要:有些企业内部程序需要对访问程序的真机做白名单限制,对于设备唯一码,苹果做出了如下限制:
1.从iOS7之后,获取MAC地址会返回固定值“02:00:00:00:00:00”。
2.试图获取UDID(设备唯一码)的程序不会通过苹果的审核。解决方案:苹果推荐使用UUID(其实微软的GUID就是它的一种实...
阅读全文
摘要:这里对网络请求方式做一个总结。原生方式同步GET请求:1 NSString *urlStr = @"http://apis.juhe.cn/mobile/get?phone=13429667914&key=e87a054855796995c9e2b48e8514d0da";2 url...
阅读全文
摘要:首先要导入libsqlite3.dylib并且加入头文件#import ,在进行增删改查之前还要先把数据库搞进去。一种方法是从外面拷贝到程序里:http://www.cnblogs.com/Steak/p/3764395.html另一种方法就是直接创建表,既然是操纵数据库,那么一定有一个数据库对象,...
阅读全文
摘要:为了程序的安全性,在进行网络请求时,有必要判断网络连通性,有时也需要根据当前没有网/是wwan或wifi做不同的操作。首先添加框架SystemConfiguration.framework,然后导入Reachability.h和Reachability.m。(下载地址:http://download...
阅读全文
摘要:一本不错的书,给出了52条建议来优化程序的性能,对初学者有不错的指导作用,但是对高级阶段的程序员可能帮助不是很大。这里贴出部分笔记:第2条:使用#improt导入头文件会把头文件的内容全部暴露到目标文件中,而且如果两个类之间存在循环引用则会出现编译错误,所以要尽量使用@class进行类声明。如果需要...
阅读全文
摘要:这里照搬Github的Demo,其实还是很易懂的,首先,要在控制器的.h文件当中实现浏览器控件的协议:1 #import 2 3 @interface ExampleAppViewController : UINavigationController 4 5 @end在.m方法当中,WebViewJ...
阅读全文
摘要:苹果其实在语言层面为我们做了很多事,比如Category实现装饰模式的意图,target-action实现命令模式意图等等,对于观察者模式,苹果也提供了KVO和通知中心,给开发者提供了极大的便利。观察着模式即一个对象发出广播,然后某些对象可以在得知这个广播之后做相应的反应。KVO用来监控某个变量,是...
阅读全文
摘要:首先,将sqlite数据库文件放在Resource文件夹下,并且允许其编译到项目当中。之后在AppDelegate当中执行一些代码,这里将代码封装了一个Helper: 1 #import "RPDBInitializeHelper.h" 2 3 @implementation RPDBInitia...
阅读全文
摘要:首先,keyPath一定是frame,而不是frame.origin.x之类的路径,因为再点下去的话,就是访问结构体内部的值了,KVO是无法检测的,会报错找不到KeyPath。代码如下:1 [_funcMenuVC.view addObserver:self forKeyPath:@"fra...
阅读全文
摘要:iOS实现发送电子邮件的方法很简单,首先导入MessageUI.framework框架,然后代码如下: 1 #import "RPViewController.h" 2 3 //添加邮件头文件 4 #import 5 6 @interface RPViewController () 7 8...
阅读全文
摘要:在.h文件当中实现UIScrollViewDelegate协议,让控制器充当代理:#import @interface RPRootViewController : UIViewController @property (retain, nonatomic) UIScrollView *scroll...
阅读全文
摘要:今天在博客园主页看到一篇帖子,提到NSLog消耗运行时性能:http://www.cnblogs.com/sunnyxx/p/3680623.html解决方案如下,在Prefix.pch文件当中定义宏:1 #ifdef DEBUG2 #define MyLog(...) NSLog(__VA_AR...
阅读全文
摘要:在C语言开发当中会遇到这样的情况: 1 #include 2 3 struct test { 4 int a; 5 char b; 6 }; 7 8 int main(int argc, const char * argv[]) 9 {10 printf("%lu\n"...
阅读全文

浙公网安备 33010602011771号