- 博客(21)
- 收藏
- 关注
转载 iOS多线程为什么会出现不安全的情况
本文在于说明iOS应用的Objective-C代码的线程安全性。先是简单介绍一下线程安全的基本知识,然后通过一个小例子来观察非线程安全代码,最后会稍稍介绍一个可以用来分析线程安全隐患的工具。 1) 基础知识 (Threading Basics) 当启动一个应用时,iOS会对应创建一个进程(process)和一块为之分配的内存。简单地说,一个应用进程的内存包括三个部分: (更详细的描述可
2015-05-07 20:22:52 886
转载 Objective-C消息转发
首先,你需要知道这两个概念: OC中调用方法就是向对象发送消息。 比如 : [person run]; 这实际上这是在给person这个对象发送run这个消息。 那么问题来了,当run这个方法只有定义没有实现会怎么样呢? 就是经典的报错 *** Terminating app due to uncaught exception 'NSInvalidArgumentExcept
2015-05-07 00:22:02 389
转载 ios的消息传递—— performSelector
Objective-C中调用函数的方法是消息传递,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。首先介绍两个方 ... Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何
2015-05-06 22:58:53 341
原创 iOS开发常见错误汇总-自己整理!
一、UIScrollerView内部子控件莫名其妙往下移动 1、如果控制器view的第一个子控件是scrollerView (1)没有导航控制器:内部子控件会下移20; (2)有导航控制器时候:内部子控件会下移64; 2、去掉系统自动下移操作 self.automaticallyAdjustsScrollViewInsets = NO; 二、控制器挂了,View还在的
2015-04-28 22:01:33 398
原创 自建项目分享-私人通讯录
1.演示私人通讯录 • 所需知识:控制器跳转,控制器之间传值,数据存储 2.项目演示:(4个界面,交给4个控制器管理) 1> 登录界面: ○ 登录按钮只有文本框都有文字才能点击 ○ 开关细节注意:当打开自动登录,记住密码也会打开,当关闭记住密码,自动登录也会打开。 ○ 文本框有占位符,提示用户输入什么。
2015-04-28 22:00:22 706
原创 UITextView使用自定义表情键盘
怎么在你的键盘中集成微博的表情键盘? 考虑到复用,我们最好把这个表情键盘封装成一个类,方便以后凡是用到表情键盘的地方都可以快速调用。下面我来仔细介绍一下设计思路。 *准备工作 新建EmotionView : UIView. 首先,我们需要一些准备工作,一个face/emoticons.plist 文件 解读一下这个plist文件,这一整个是一个数组,分别是[ite
2015-04-28 21:54:01 474
原创 iOS中实现Smartisan OS首页PageControll效果
Smartisan OS中的PageControl小点会跟着页面的移动跟着移动,而iOS中则是当滑到下一页的时候硬生生地跳到下一个空白圆点。不可否认,这一点确实是Smartisan OS中的效果做的好。那么我们有办法实现吗?答案是肯定的。下面介绍。 1.创建图层 为了便于复用,我们需要创建一个继承与UIView的类 PageControlView:UIView。定义一个初始化方法: -(
2015-04-28 21:51:11 434
原创 HTML5 基础
1.认识HTML5 1> 未来的⼀一种趋势 2> 跨平台:利⽤用HTML5编写的UI界⾯面代码能运⾏行在所有拥有浏览器的平台 3> HTML5的运⾏行平台:浏览器 4> 但是HTML5不能完成⼀一些特定的功能:⽐比如拍照、相册(UIImagePickerController) 2.开发工具 1> android:eclipse、M
2015-03-22 11:03:51 323
原创 iOS 运行时 小结
1.什么是运行时? 1> 运行时是一套纯C语言的API(纯C语言库) 2> 编译器最终都会将OC代码 转化 为运行时代码 * clang -rewrite-objc xxx.m 3> 利用运行时,可以做很多底层的操作,比如 * 动态添加对象的成员变量和成员方法 * 动态交换两个方法的实现(特别是交换系统自带的方法) * 获得某个类的所有成员方法、所有成员变量 2.如
2015-03-22 10:59:13 339
原创 iOS block 小结
一、 0、为什么不使用方法来保存代码,要使用block (1)方法封装代码一开始就写死了,而不能在某个方法内部创建block保存一段代码,并且根据不同的需求调用不同的代码 1.类似于指向函数的指针 2、block的定义格式 (1)没参数,没返回值 (2)有参数,没返回值 (3)有参数,有返回值 3、block默认情况下保存在栈中,block里面引用对象会自动释放,使用copy会保存
2015-03-21 23:29:27 450
原创 Foundation框架中常用的类
Foundation框架中几乎天天都用到的类: 1、NSString(子类NSMutableString) 2、NSArray(子类NSMutableArray) 3、NSSet(子类NSMutableSet) 4、NSDictionary(子类NSMutableDictionary) 5、NSDate 1、NSString:不可变字符串,一旦定
2014-12-12 14:07:45 408
原创 OC内存管理剖析
OC中内存管理机制的原理:对象的及时释放 引用计数器: 1、概念: 每个OC对象都有自己的引用计数器,是一个整数,表示“对象被引用的次数”。每个OC对象内部专门有4个字节的存储空间来存储引用计数器。 2、作用: 1)当使用alloc、new、copy创建一个新对象时,新对象的引用计数器默认就是1 2)当一个对象的引用计数器为0时,对象占用的内存就会被系统回收 3、操作: 1)调用一
2014-12-12 14:00:39 401
原创 OC中引用的注意事项
开发中引用一个类的规范: 1、在.h文件中用@class来声明类 2、在.m文件中用#import来包含类的所有东西 @class使用场景:对于循环依赖关系,用@class在两个类相互声明,不会出现编译报错。 @class和#import区别: 1、#import方式会包含被引用的所有信息,包括本引用类的变量和方法;@class方式只是告诉编译器在A.h中B *b只是类的
2014-12-12 13:27:13 708
原创 iOS中的ARC
ARC机制(自动引用技术):编译器特性 一、ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2
2014-12-12 13:02:09 370
原创 OC计算代程序码量
//计算某个文件夹下所有文件的代码量 NSUInteger codeLineCount(NSString *path) { //1.获得文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; //2.判断path是文件夹还是文件路径 BOOL dir = NO; //标记是
2014-12-12 12:43:31 347
原创 OC中的协议protocol
协议protocol 1、基本用途: >可以用来声明一大堆方法(不能声明成员变量) >只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明 >只要父类遵守了某个协议,就相当于子类也遵守了 2、关键字: 协议中有2个关键字,可以控制方法是否要实现(默认是@required),在大多数情况下,用途在于程序员之间的较量 >@required:这个方法必须实现(若
2014-12-12 12:39:46 443
原创 Xcode经典错误
用Xcode编程中,经常碰到的错误提示: 1、-[Person test]: unrecognized selector sent to instance 给Person对象发送了一个不能识别的消息:test 2、error: instance variable 'age' accessed in class method 实例变量age不能在类方
2014-12-12 12:00:03 391
原创 iOS开发最基本控件的使用
一、控件的属性 1.CGRect frame 1>表示控件的位置和尺寸(以父控件的左上角为坐标原点) 2>修改这个属性,可以调整控件的位置和尺寸 2.CGPoint center 1>表示控件的中点(以父控件的左上角为坐标原点) 2>修改这个属性,可以调整控件的位置 3.CGRect bounds 1>表示控件的位置和尺寸(以自己的左上角为坐标原点,位置永远是(0,
2014-12-12 11:57:05 387
原创 OC中字典dictrionary的应用
字典的原理: 与java中的hashmap功能相同 key ---> value 字典中存储的都是键值对 一、dictionary 创建字典方法1: NSArray *keys = @[@"name", @"address"]; NSArray *objects = @[@"jack", @"tia
2014-12-12 11:54:26 685
原创 OC三种数组遍历方法
//数组的遍历方法,注视方法3,block的应用 NSArray *array = @[@"jack",@"jim",@"rose"]; //方法1:类似c语音的最简单遍历 for (int i = 0; i { NSLog(@"%@",array[i]); }
2014-12-12 11:47:07 768
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人