- 博客(31)
- 收藏
- 关注
转载 OC运行时和方法机制笔记
在OC当中,属性是对字段的一种特殊封装手段。在编译期,编译器会将对字段的访问替换为内存偏移量,实质是一种硬编码。如果增加一个字段,那么对象的内存排布就会改变,需要重新编译才行。OC的做法是,把实例变量当做一种存储偏移量所用的特殊变量交给类对象来管理,偏移量会在运行期动态查找,这样无论何时访问实例变量,总能找到正确的地址。可以在对象的内部(.m当中)直接使用下划线变量而不用...
2014-10-18 14:04:00 144
转载 AlertView点击确定后再执行后面的代码
AlertView的show方法执行后,后面的代码会继续运行,而不会等待用户按键结束再走,这样,如果把弹出的代码写在一个BOOL函数里,没等用户确认直接返回NO就惨了,解决方法: 1 - (BOOL)beforeBackButtonClickEvent { 2 UIAlertView *alert = [[UIAlertView alloc] initWithTitl...
2014-09-15 14:17:00 495
转载 对第三方库集成方式的分析
前一阵子做了iOS集成新浪微博SDK并实现部分功能的工作,这里正好将事后反思的内容总结一下,欢迎喷冷水。 假定需求是这样:在已经使用微博登陆的前提下,查找一个人的所有好友,筛选出其中年龄、性别等属性符合一定规则的人,然后查找这些人所有的微博,将这些微博按照一定的条件组织并且展示。 首先说明一下,查找好友和查找微博的做法,都是通过网络请求向新浪API请求数据,而登陆则可以通过SD...
2014-08-24 23:11:00 146
转载 当程序进入后台时执行长时间代码
进入后台时,iOS给了我们10分钟的时间做一些事件处理。AppDelegate.h:1 #import <UIKit/UIKit.h>2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate>4 5 @property (assign, nonatomic) UIBa...
2014-07-24 19:27:00 159
转载 iOS开发之GCD使用总结
GCD是iOS的一种底层多线程机制,今天总结一下GCD的常用API和概念,希望对大家的学习起到帮助作用。GCD队列的概念在多线程开发当中,程序员只要将想做的事情定义好,并追加到DispatchQueue(派发队列)当中就好了。派发队列分为两种,一种是串行队列(SerialDispatchQueue),一种是并行队列(ConcurrentDispatchQueue)。...
2014-07-15 15:04:00 98
转载 缓存网络请求的结果
显然在某些情况下我们很希望减少移动设备和网络的交互次数,这就需要使用iOS的内存缓存了。代码基本上没有什么需要解释的地方,注意不要乱缓存,注意根据需要清理缓存即可。 1 //构建请求 2 NSURL *url = [NSURL URLWithString:@"http://218.241.17.106/webService/configService.asmx...
2014-07-12 15:57:00 103
转载 防止 NSTimer retain 作为 target 的 self
先吐槽一下这个标题,空格略蛋疼,不像中文,但是不写空格看上去则更诡异,求解决方案……NSTimer会retain它的target,这样如果在控制器当中定义一个NSTimer,target指定为self,则会引起循环引用。解决方案和防止block引用self一样,第一步需要把NSTimer的操作封装到一个block里,第二步则需要传递一个self的弱引用给block。...
2014-07-05 11:40:00 67
转载 获取设备唯一码
有些企业内部程序需要对访问程序的真机做白名单限制,对于设备唯一码,苹果做出了如下限制: 1.从iOS7之后,获取MAC地址会返回固定值“02:00:00:00:00:00”。 2.试图获取UDID(设备唯一码)的程序不会通过苹果的审核。解决方案:苹果推荐使用UUID(其实微软的GUID就是它的一种实现)。我们可以在程序第一次启动时生成这个ID并保存起来,但是,如果用...
2014-07-04 15:49:00 183
转载 原生网络请求以及AFN网络请求/异步下载
这里对网络请求方式做一个总结。原生方式同步GET请求:1 NSString *urlStr = @"http://apis.juhe.cn/mobile/get?phone=13429667914&key=e87a054855796995c9e2b48e8514d0da";2 urlStr = [urlStr stringByAddingPerce...
2014-07-04 10:56:00 111
转载 iOS使用sqlite3原生语法进行增删改查以及FMDB的使用
首先要导入libsqlite3.dylib并且加入头文件#import <sqlite3.h>,在进行增删改查之前还要先把数据库搞进去。一种方法是从外面拷贝到程序里:http://www.cnblogs.com/Steak/p/3764395.html另一种方法就是直接创建表,既然是操纵数据库,那么一定有一个数据库对象,sqlite是C库,所以需要一个C变量:...
2014-06-22 15:17:00 100
转载 监控网络状态的改变
为了程序的安全性,在进行网络请求时,有必要判断网络连通性,有时也需要根据当前没有网/是wwan或wifi做不同的操作。首先添加框架SystemConfiguration.framework,然后导入Reachability.h和Reachability.m。(下载地址:http://download.csdn.net/download/yiran_style/4979061)...
2014-06-22 10:51:00 119
转载 使用PHP实现请求响应和MySql访问
在iOS开发当中经常需要使用来自后台的数据,所以使用一种很简便的写后台的方法。首先,安装XAMPP,这是一个集成好的阿帕奇+MySQL环境,点击按钮即可开启服务,不需要进行任何环境配置。然后,开启Apache Web Server和MySql Database,之后进入127.0.0.1就能查看服务器了,其中有一个phpMyAdmin,可以在里面建立数据库和数据表,然后可以在XA...
2014-06-21 19:01:00 131
转载 Effective Objective-C 读书笔记
一本不错的书,给出了52条建议来优化程序的性能,对初学者有不错的指导作用,但是对高级阶段的程序员可能帮助不是很大。这里贴出部分笔记:第2条:使用#improt导入头文件会把头文件的内容全部暴露到目标文件中,而且如果两个类之间存在循环引用则会出现编译错误,所以要尽量使用@class进行类声明。如果需要实现一个协议,则必须#improt这个协议的头文件,所以可以将协议单独定...
2014-06-15 17:19:00 103
转载 通过WebViewJavascriptBridge实现OC与JS交互
这里照搬Github的Demo,其实还是很易懂的,首先,要在控制器的.h文件当中实现浏览器控件的协议:1 #import <UIKit/UIKit.h>2 3 @interface ExampleAppViewController : UINavigationController <UIWebViewDelegate>4 5 @end...
2014-06-13 10:10:00 97
转载 KVO和通知中心
苹果其实在语言层面为我们做了很多事,比如Category实现装饰模式的意图,target-action实现命令模式意图等等,对于观察者模式,苹果也提供了KVO和通知中心,给开发者提供了极大的便利。观察着模式即一个对象发出广播,然后某些对象可以在得知这个广播之后做相应的反应。KVO用来监控某个变量,是一种局部性的监听机制,使用方式如下:首先,为被检测的变量添加一个观察者:...
2014-06-06 10:23:00 57
转载 将外部准备好的sqlite导入到项目当中
首先,将sqlite数据库文件放在Resource文件夹下,并且允许其编译到项目当中。之后在AppDelegate当中执行一些代码,这里将代码封装了一个Helper: 1 #import "RPDBInitializeHelper.h" 2 3 @implementation RPDBInitializeHelper 4 5 + (void)initial...
2014-06-02 16:00:00 305
转载 利用KVO监视一个view的frame
首先,keyPath一定是frame,而不是frame.origin.x之类的路径,因为再点下去的话,就是访问结构体内部的值了,KVO是无法检测的,会报错找不到KeyPath。代码如下:1 [_funcMenuVC.view addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOl...
2014-05-31 20:37:00 215
转载 cocos2d-x创建场景
今天开始学习Cocos2d-x,使用的版本是2.1.4,这个版本比较老,对应的参考资料也比较齐全。在mac/xcode环境下,代码是写在Classes文件夹下的,和iOS应用类似,程序从AppDelegate.cpp开始,这当中也有一些生命周期方法,其中有一个applicationDidFinishLaunching方法: 1 bool AppDelegate::appl...
2014-05-27 20:48:00 86
转载 在iOS当中发送电子邮件和短信
iOS实现发送电子邮件的方法很简单,首先导入MessageUI.framework框架,然后代码如下: 1 #import "RPViewController.h" 2 3 //添加邮件头文件 4 #import <MessageUI/MFMailComposeViewController.h> 5 6 @interface RPViewCon...
2014-05-22 15:35:00 145
转载 利用UIScrollView和UIPageControl实现多页图片欢迎页面
在.h文件当中实现UIScrollViewDelegate协议,让控制器充当代理:#import <UIKit/UIKit.h>@interface RPRootViewController : UIViewController <UIScrollViewDelegate>@property (retain, nonatomic) UISc...
2014-05-21 16:01:00 100
转载 组织行为学笔记(5)——知觉与个体决策
知觉是个体为自己所在的环境赋予意义、并解释自己所感受到的印象的过程,人们的行为是基于他们对显示的感知,影响着人们行为的世界是感知中的世界。影响感知的因素有三:感知者,也就是说感知的结果受我们自己的经验影响,比如,主观地认为警察有权威,年轻人更懒散。感知目标,如声音洪亮的人更容易引起别人的注意,这是通过与其他人群进行比较得到的结论。情境,如同样是穿着礼服参加宴会和穿着礼服上...
2014-05-10 20:48:00 646
转载 组织行为学笔记(4)——人格与价值观
人格:人格是个体诸多心理系统之中的一个动态组织形式,能够决定人对环境做出的独特反映形式。人格是可以测量的,但是在做测试时,当天的情绪会影响测量结果,而且作为面试者,可能会在测试当中撒谎。实验表明人格主要受遗传因素影响,人格通常在成年时成型。拿我自己来说,我自己曾经连续4年每年进行MBIT测试,结果几乎都是一样的,只是在个别程度上有些轻微变化,这些轻微改变或许与个人经历有关...
2014-04-26 10:32:00 599
转载 组织行为学笔记(3)——情绪和心情
不论任何情绪,都会对工作效率产生有利或不利的干扰。在组织行为学当中,情感是一个宽泛的概念,表示人体会到的各种感觉,它分为情绪与心情两种表现形式。情绪往往由特定事件引发,持续时间较短,通常伴随着特定的面部表情,本质上属于行动导向。而心情则更加综合一些,持续时间更久,通常没有表现行为,本质上属于认知层面。面部的微表情通常是很难掩饰的,但是留意对方的微表情并根据对方情绪调整自己的说话方...
2014-04-23 21:23:00 871
转载 利用宏定义令iOS项目当中的NSLog不执行
今天在博客园主页看到一篇帖子,提到NSLog消耗运行时性能:http://www.cnblogs.com/sunnyxx/p/3680623.html解决方案如下,在Prefix.pch文件当中定义宏:1 #ifdef DEBUG2 #define MyLog(...) NSLog(__VA_ARGS__)3 #else4 #define MyLog(......
2014-04-22 17:37:00 135
转载 组织行为学笔记(2)——态度和工作满意度
态度三要素:态度要素分为认知要素、情感要素和行为要素三类,如,员工认为自己应该晋升(态度)却没有晋升,他开始怨恨主管(情感),并且投诉或跳槽(行为)。态度的三个要素是相互影响的,而行为是最值得研究的,而人的行为存在一种认知不协调的现象,比如贩卖烟草的人明知道吸烟有害健康,却还对顾客说吸烟没事,比如明知道不能漏税却还在漏税。人们会根据人之不协调行为对事情的重要性(包括社会压力)...
2014-04-12 18:11:00 733
转载 C语言结构体的内存对齐问题
在C语言开发当中会遇到这样的情况: 1 #include <stdio.h> 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", sizeof...
2014-04-12 14:46:00 91
转载 组织行为学笔记(1)——个体差异与多元化
今天开始学习组织行为学,所选的书籍是斯蒂芬P罗宾斯的《组织行为学精要》,并且记录读书笔记。其中正体字为对书中内容的提炼总结,斜体划线字为个人观点。组织行为学概述:组织行为学是研究个体、群体和架构对组织中行为的影响的学科,目的是利用这门知识提升组织的绩效。它涉及到心理学、社会心理学、社会学及人类学等其他学科。由于人是非常复杂的,所以组织行为学当中不存在绝对的答案,但是能够根据...
2014-04-12 13:32:00 1375
转载 利用KVC实现无需协议的委托模式
在《精通iOS开发》一书中看到的技巧。假设BIDTaskListController是一个列表,点击列表上的一项将会导航到BIDTaskDetailController,在BIDTaskDetailController当中修改值并保存后,将把修改后的值回传给BIDTaskListController并更新局部视图。在BIDTaskListController类中有如下方法:...
2014-03-02 18:49:00 93
转载 模仿虚基类和抽象方法
这里谈谈策略和模板方法模式,之所以把这两个模式放在一起,是因为从结构上来讲他们很像。先来说策略模式,它实现起来很其实简单,它和模板方法在结构上的主要差异在于抽象对象采用抽象类还是协议。这个抽象对象当中的方法相当于java/C#里的virtual方法,甚至如果有需要可以弄成abstract方法。但是OC当中并没有这两个概念,其实这样设计是有好处的,由于这种不严格性,就没有必要考...
2014-02-06 15:34:00 127
转载 原型模式与深浅拷贝
原型模式的目的就是通过复制的手段得到一个新的对象。个人认为这种模式最大的好处是省掉了“工厂”这层概念,因为工厂通常给人的印象是某种初始化动作,而拷贝则是建立在运行时已经生成的对象的基础之上的。一个更大的好处是可以让拷贝操作作用在聚合根之上,可以一次性拷贝一套复杂的对象集合,对外则屏蔽了赋值过程的细节。拷贝分为深拷贝和浅拷贝两种,浅拷贝就是建立一个新指针指向同一个对象,即同一个...
2014-02-04 21:54:00 103
转载 MRC下单例模式的内存问题与ARC实现
单例模式保证一个类只能拥有一个静态的实例,类负责创建与维护这个实例,并提供一个统一的静态(类方法)访问方式,并封锁了这个类外部的代码对这个类对象的创建。.h文件:1 #import <Foundation/Foundation.h>2 3 @interface Singleton : NSObject4 @property (nonatomic, co...
2014-02-04 11:39:00 88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人