OC开发语言
文章平均质量分 89
坛主白羊
独善其身,兼爱天下!
展开
-
Foundation框架介绍
我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有: Foundation概述常用结构体日期字符串数转载 2015-12-12 17:47:26 · 618 阅读 · 0 评论 -
Block的定义和使用
作者:兴宇是谁 地址:http://www.jianshu.com/p/1ae78a9379d4 iOS中block比较常用,但是又和OC的语法显得有点格格不入,难于理解。 以下是我个人初步的理解,供查阅。 1.block的声明 //声明一个block typedef NSString *(^WXYTestBlock)(NSString *name, int age);转载 2016-01-09 18:12:13 · 242 阅读 · 0 评论 -
SEL @selector()总结(一)
SEL 类成员方法的指针 可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取. 它的结果是一个SEL类型。这个类型本质是类方法的编号(函数地址) C/C++函数指针 int test(int转载 2016-01-09 18:16:58 · 281 阅读 · 0 评论 -
SEL @selector()总结(二)
SEL消息机制工作原理 我们在之前有提到,一个类就像一个 C 结构.NSObject 声明了一个成员变量: isa. 由于 NSObject 是所有类的根类,所以所有的对象都会有一个 isa 的成员变量[公共继承].而该 isa 变量指向该对象的类(图3.15)[类在Objective-C中也是一个实体, 由于存在Objective-C 运行环境所有的类将有自己的存储空间转载 2016-01-09 18:18:41 · 247 阅读 · 0 评论 -
SEL工作机制(二)
SEL消息机制工作原理是什么 引用下面文章: 我们在之前有提到,一个类就像一个 C 结构.NSObject 声明了一个成员变量: isa. 由于 NSObject 是所有类的根类,所以所有的对象都会有一个 isa 的成员变量[公共继承].而该 isa 变量指向该对象的类(图3.15)[类在Objective-C中也是一个实体, 由于存在Objective-C 运行转载 2016-03-11 11:13:38 · 359 阅读 · 0 评论 -
内存管理(retain,assign,copy,strong,weak)
IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样。 (一般情况下: 后面会讨论例外情况) alloc 对象分配后引用计数为1 retain 对象的引用计数+1 copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变转载 2016-03-10 16:01:12 · 300 阅读 · 0 评论 -
设计模式kvc和kvo
iOS开发系列--Objective-C之KVC、KVO 2014-07-27 11:29 by KenshinCui, 38353 阅读, 22 评论, 收藏, 编辑 概述 由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性转载 2016-02-22 15:10:10 · 338 阅读 · 0 评论 -
设计模式补充
(一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。 优势:解耦合 敏捷原则:开放-封闭原则 实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。 列表row个数delegate 自定义的delegate (二)观察者模式 应用场景:一般为model层对,controller和view进转载 2016-02-22 14:19:04 · 254 阅读 · 0 评论 -
IOS内存管理
概述 我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,但在OjbC中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人员手动维护。今天将着重转载 2016-01-23 15:44:17 · 183 阅读 · 0 评论 -
iOS实例变量属性参数的区别
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。 atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全。 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下转载 2016-01-13 21:45:06 · 645 阅读 · 0 评论 -
Socket使用大全
第一部分、概念的理解 1、什么是Socket? Socket又称之为“套接字”,是系统提供的用于网络通信的方法。它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息的接口,程序员使用这个接口提供的方法,发送与接收消息。 Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发转载 2016-01-09 18:24:20 · 421 阅读 · 0 评论 -
移动开发内存分类
堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链转载 2016-05-21 15:55:28 · 303 阅读 · 0 评论 -
常用开源协议
GPL:只要你用了任何该协议的库、甚至是一段代码,那么你的整个程序,不管以何种方式链接,都必须全部使用GPL协议、并遵循该协议开源。商业软件公司一般禁用GPL代码,但可以使用GPL的可执行文件和应用程序。 AGPL:即Affero GPL,是GPL的更严格版本。只要你用了任何该协议的库、甚至是一段代码,那么运行时和它相关的所有软件、包括通过网络联系的所有软件,必须全部遵循该协议开源。据律师说转载 2016-06-01 14:35:40 · 357 阅读 · 0 评论 -
Object-C文件和目录操作
objective-c通过使用NSFileManager类来管理和操作文件、目录,NSFileManager,文件或目录是使用文件的路径名的唯一标示。每个路径名都是一个NSString对象。 NSFileManager对象通过defaultManager方法来创建实例 列如: NSFileManager *fm = [NSFileManager defaultManager];转载 2016-01-09 16:08:15 · 1528 阅读 · 0 评论 -
iOS数据类型
数据类型 1.Objective-C数据类型可以分为:基本数据类型、对象数据类型和id类型。 2.基本数据类型有:int、float、double和char类型。 3.对象类型就是类或协议所声明的指针类型,例如: NSAutoreleasePool *pool ,其中,NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型或叫对象类型。 4转载 2015-12-26 16:35:42 · 406 阅读 · 0 评论 -
初始化方法详细
initWithFrame、initWithCoder、awakeFromNib的区别和调用次序 & UIViewController生命周期 查缺补漏 当我们创建或者自定义一个UI控件时,就很可能会调用awakeFromNib、initWithCoder 、initWithFrame这些方法。三者的具体区别如下: initWithFrame: 通过代码创建UI控件的时候就会调用;转载 2016-08-23 12:52:08 · 1985 阅读 · 0 评论 -
Property详解
之前很多网友对我翻译的教程中的Property的使用感到有些迷惑不解,搞不清楚什么时候要release,什么时候要self.xxx = nil;同时对于Objective-c的内存管理以及cocos2d的内存管理规则不够清楚。本文主要讲解objc里面@property,它是什么,它有什么用,atomic,nonatomic,readonly,readwrite,assign,retain,copy转载 2016-04-09 10:43:02 · 356 阅读 · 0 评论 -
Runtime and Runloop
一.RunLoop: Runloop是事件接收和分发机制的一个实现。 Runloop提供了一种异步执行代码的机制,不能并行执行任务。 在主队列中,Main RunLoop直接配合任务的执行,负责处理UI事件、定时器以及其他内核相关事件。 (1).RunLoop的主要目的:转载 2016-03-26 20:18:55 · 376 阅读 · 0 评论 -
对象类型新初始化方法
下列简化写法是IOS6.0以后的新写法 NSNumber //简化前的写法: NSNumber *value1; value1 = [NSNumber numberWithInt:12345]; value1 = [NSNumber numberWithFloat:123.45f]; value1 = [NSNumber numberWithDouble转载 2016-03-25 13:15:28 · 280 阅读 · 0 评论 -
class,sel and IMP说明
cocoa当中的函数调用,是一种以消息的方式进行的函数调用,这一点与C++,java是有很大差别的。因此该类型的理解,会涉及到三个重要的概念,class,sel,IMP。 class 每个NSObject的第一个成员变量都是class类型的成员,isa,这个isa的对象可以访问到本类的父类,也可以访问到本类的所有方法的列表。 SEL转载 2016-03-17 17:01:02 · 321 阅读 · 0 评论 -
SEL工作原理(一)
SEL 类成员方法的指针 可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中函数指针,只不过C语言中,可以把函数名直接赋给一个函数指针,而Object-C的类不能直接应用函数指针,这样只能做一个@selector语法来取. 它的结果是一个SEL类型。这个类型本质是类方法的编号(函数地址) C/C++函数指针 int test(int转载 2016-03-11 11:15:33 · 870 阅读 · 0 评论 -
协议和委托
Objective-C语法讲座(重要) http://www.cocoachina.com/newbie/basic/2011/1026/3422.html 网络编程从大的方面说就是对信息的发送到接收。 自定义协议实现网络通信 网络编程的主要对象就是浏览器 因为我们上网基本上是依赖浏览器的,当然,像游戏,聊天软件等等这些不依赖转载 2015-12-14 11:12:34 · 267 阅读 · 0 评论 -
iOS之Target
Target-action:目标-动作模式,它贯穿于iOS开发始终。但是对于初学者来说,还是被这种模式搞得一头雾水。 其实Target-action模式很简单,就是当某个事件发生时,调用那个对象中的那个方法。如:按下按钮时,调用Controller里边的click方法。“那个对象”就是Target,“那个方法”就是Action,及Controller是Targer,click方法是act转载 2015-12-20 00:53:50 · 435 阅读 · 0 评论 -
OC面试题集
1、Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议。 2、#import和#include的区别是什么?#import #import能避免头文件被重复包含的问题: 1) 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include。 使用include要注意重复引用的问题: cl转载 2015-12-24 16:46:35 · 212 阅读 · 0 评论 -
编程面向过程和对象的区别
问:经常听到有人说,计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢? 答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 可以拿生活中的实例来理解转载 2015-12-24 16:52:10 · 268 阅读 · 0 评论 -
最全iOS面试题
1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString转载 2015-12-25 14:33:59 · 530 阅读 · 0 评论 -
Socket大全
第一部分、概念的理解 1、什么是Socket? Socket又称之为“套接字”,是系统提供的用于网络通信的方法。它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息的接口,程序员使用这个接口提供的方法,发送与接收消息。 Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发转载 2015-12-25 14:36:10 · 243 阅读 · 0 评论 -
iOS之数据存取
在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录。当然,文件存储并不作为本文的重点内容转载 2016-01-16 10:43:55 · 388 阅读 · 0 评论