随笔分类 -  Objective-C

摘要:Block原理 Block自动截获局部变量 Block原理 主要代码摘要如下: 源码下载 Block自动截获局部变量 1、什么是自动截获局部变量:在执行block语法的时候,block语法表达式所使用的局部变量被保存到block的结构体实例中(没有使用的变量不会被追加)。 2、自动截获局部变量带来的 阅读全文
posted @ 2016-11-01 18:05 Shaper22 阅读(299) 评论(0) 推荐(0)
摘要:关于直接调用方法和给对象发送消息调用方法(即perfromSelector和NSInvocation) performSelector是运行时系统负责去找方法的,在编译时候不做任何校验;如果直接调用编译是会自动校验。如果imageDownloader:didFinishWithImage:image 阅读全文
posted @ 2016-07-04 20:47 Shaper22 阅读(795) 评论(0) 推荐(0)
摘要:Java和OC的区别 阅读全文
posted @ 2016-06-16 16:16 Shaper22 阅读(172) 评论(0) 推荐(0)
摘要://4.运行过程 //1> 编写OC源文件:.m、.c //2> 编译:cc -c xxx.m xxx.c //3> 链接:cc xxx.o xxx.o -framework Foundation //(只有用到了Foundation框架才需要加上-framework Foundation) //4 阅读全文
posted @ 2016-06-16 11:26 Shaper22 阅读(130) 评论(0) 推荐(0)
摘要:import相对于include: 1)、同样可以拷贝文件内容 2)、可以防止文件的重复拷贝 阅读全文
posted @ 2016-06-16 11:25 Shaper22 阅读(192) 评论(0) 推荐(0)
摘要:// 对象作为函数的参数--类与对象的内存分析 //成员方法和函数的区别 #import @interface Car : NSObject{ @public int wheel; int speed; } -(void) run; @end @implementation Car -(void)run{ NSLog(@"%i轮子,时速%i的车子跑起... 阅读全文
posted @ 2016-06-16 11:24 Shaper22 阅读(301) 评论(0) 推荐(0)
摘要://[Person new]; 真正开发并不常用,这种创建对象的方式太死板了 //完整的创建一个可用的对象 //1、分配存储空间 +alloc 返回id类型,分配好存储空间的对象,没有初始化还不可用 //2、初始化 -init 阅读全文
posted @ 2016-06-16 11:21 Shaper22 阅读(216) 评论(0) 推荐(0)
摘要://id是一种类型,是一个关键字所以以后的标识符就不能起名叫做id //id是万能指针,能指向 操作任何oc对象 内部已经包含*,不要自己 //再写* //id d=[Person new]; //id= NSObject * //void test(id d); //@property id d; 阅读全文
posted @ 2016-06-16 11:19 Shaper22 阅读(216) 评论(0) 推荐(0)
摘要:// @property和@synthesize--编译器特性,自动生成get、set方法 //成员变量 //int _age; //get、set方法声明的快速实现 //@property int age 等价于 //- (void)setAge:(int)age; //- (void)age; 阅读全文
posted @ 2016-06-16 11:18 Shaper22 阅读(160) 评论(0) 推荐(0)
摘要:@public:(当然要先有对象)在任何地方都能直接访问对象的成员变量 @private:只能在当前类的方法中访问(虽然子类不可访问父类的private,但是子类 还是有这个成员变量) @package:只要处于同一个框架中,就能直接访问对象的成员变量 写框架才用,一般用不到 @protected: 阅读全文
posted @ 2016-06-16 11:17 Shaper22 阅读(188) 评论(0) 推荐(0)
摘要:// self关键字--在OC中没有@符号的关键字 //self就是一个指针,谁调用本方法这个指针就指向谁, //指向了方法的调用者,代表着当前的对象 //1、self调用成员变量 //self->age=age; 类似于java中的this.age=age; //2、self调用成员方法 //[s 阅读全文
posted @ 2016-06-16 11:16 Shaper22 阅读(139) 评论(0) 推荐(0)
摘要://多态:多种形态 对象有多种形态 //没有继承就没有多态,必须继承 #import <Foundation/Foundation.h> //多态:父类的指针指向子类对象 //调用一个对象方法会检测对象的真实形象 //注意: //Cat *c=[Animal new]; 这样都允许,OC是弱语法 / 阅读全文
posted @ 2016-06-16 11:13 Shaper22 阅读(140) 评论(0) 推荐(0)
摘要:继承代表两个类之间的关系 Dog:Animal 类似java中的 Dog extends Animal Dog *pDog=[Dog new];类似java中的 Dog dog=new Dog(); [pDog bark];类似java中的 dog.brak(); ARC机制,自动生成内存管理代码 阅读全文
posted @ 2016-06-16 11:09 Shaper22 阅读(143) 评论(0) 推荐(0)
摘要:main.m Person.h Person.m 阅读全文
posted @ 2016-06-16 11:04 Shaper22 阅读(277) 评论(0) 推荐(0)
摘要://要求设计一个股票软件 //提供一个设置最大值. 和一个最小值, 以及获取平局值的方法 #import #import "KLine.h" // 使用类先引入数据的头文件 int main(int argc, const char * argv[]) { KLine *pk = [KLine new]; [pk setMin:90]; [pk setM... 阅读全文
posted @ 2016-06-16 11:03 Shaper22 阅读(129) 评论(0) 推荐(0)
摘要:main.m Gun.h Gun.m 阅读全文
posted @ 2016-06-16 11:00 Shaper22 阅读(159) 评论(0) 推荐(0)
摘要:// 匿名对象 #import int main(int argc, const char * argv[]) { // com+ctrl+上 在.m和.h之间切换 // [Person new]; // 无论有没有名字,只要调用new方法就会返回对象的地址 // // [Person new]->name=@"cy"; // [Person new]... 阅读全文
posted @ 2016-06-16 10:54 Shaper22 阅读(134) 评论(0) 推荐(0)
摘要:// // main.m // 对象作为返回值:对象作为返回值,主要是掌握: //在成员方法中创建的对象,是局部变量,但是这个局部变量存储在堆当中,方法执行完后不会自动的释放 #import //士兵在兵工厂买枪和子弹,然后进行射击 //弹夹类 @interface Clip : NSObject { @public int _bullet; // 子弹数 } -... 阅读全文
posted @ 2016-06-16 10:53 Shaper22 阅读(473) 评论(0) 推荐(0)
摘要:// // main.m // 对象作为参数的连续传递 // 方法的形参,当调用该方法的时候,接收了值,才会给该方法中的形参分配存储空间, // 如果传进来了是对象的指针,就保存了对象的地址,也就是指向了那个对象 #import #pragma mark - 弹夹 //弹夹 //事物名称: 弹夹(Clip) //属性:子弹(Bullet) //行为:上子弹(addBul... 阅读全文
posted @ 2016-06-16 10:52 Shaper22 阅读(135) 评论(0) 推荐(0)
摘要:// 对象作为参数传递 //好好感受一下面向对象的思想,枪有射击的功能,士兵使用枪射击,就给士兵一个枪,然后调用枪的射击方法就可以了 #import #pragma mark - 枪 //枪 //事物名称:枪(Gun) //属性:弹夹(clip) , 型号(model) //行为:射击 @interface Gun : NSObject { @public int _... 阅读全文
posted @ 2016-06-16 10:51 Shaper22 阅读(163) 评论(0) 推荐(0)