Obj-C:

1.消息机制

[shape draw]  向该对象发送消息,该对象查找并运行此函数

差不多就是shape.draw();

2.中缀语法

[textThing setStringValue:@“Hello” color:[UIColor RedColor]];

3.代码重构:

减少重复代码,写成函数或者类

4.类的复合

汽车类由轮子类和车架类复合而成(伪多继承实现方式)

11.selector响应选择器

[car respondsToSelector:@selector(doxxx:)]

12.Category(类别)和类扩展

类别缺点:1.不能新加变量 2.重名会覆盖

Things为已有类

类别:(无法添加成员变量!)

@interface Things(Plus){

}

进行类扩展如下:(可以添加成员变量!)

@interface Things(){

}

13.协议和delegate委托(代理)

协议:

//协议定义

@protocol UpdateAlertDelegate <NSObject>

- (void)updateAlert;

@end

委托:协议基础上增加

@interface TimerControl : NSObject

//遵循协议的一个代理变量定义

@property (nonatomic, weak) id<UpdateAlertDelegate> delegate;

- (void) startTheTimer;

@end

14.block代码块:函数指针

创建:

int (^multiply_block)(int number)=^(int number){

return (number*number);

}

调用:

int result=multiply_block(5);

创建block变量:

typedef double (^MKSampleMultiply2BlockRef)(double c,double d);

MKSampleMultiply2BlockRef multiply2={ return c *d ; };

调用:

multiply2(4,5);

GCD多线程

15.调度队列:

1.连续队列

dispatch_queue_t my_serial_queue= dispatch_queue_create(“myQueue”,NULL);

2.并发队列

= dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY,0);

3.主队列

= dispatch_get_current_queue(void);

4.获取当前队列

= dispatch_get_current_queue();

16.程序调度

dispatch_block_t myBlock=^{ NSLog(@“A cute block!”) }

Block异步:dispatch_async(_serial_queue,^{  NSLog(@“TASK1 ”);   });

Block异步:dispatch_async(_serial_queue,myBlock);

异步函数:dispatch_async_f(_serial_queue,(_bridge void*)[NSNumber numberWithInt:3],(dispatch_function_t)myDispatchFunction);

队列暂停:

dispatch_suspend(_serial_queue);

队列重新开始

dispatch_resume(_serial_queue);

_bridge关键字

告诉ARC交给系统管理内存

17 操作队列 NSOperationQueue

1.创建代码块操作

NSBlockOperation *blockOperation=[NSBockOperation blockOperationWithBlock:^{

}];

2.[blockOperation addExecutionBlock:^{

}];

队列操作

1.当前队列

NSOperationQueue *currentQueue=[NSOperationQueue currentQueue];

2.主队列

[NSOperationQueue mainQueue];

3.队列添加代码块

[theQueue addOperation:blockOperation];

[theQueue addOperation:^{

nslog(@“aaa”);

}];

[Objective-C 面试简要笔记]的更多相关文章

  1. Java基础技术JVM面试【笔记】

    Java基础技术JVM面试[笔记] JVM JVM 对 java 类的使用总体上可以分为两部分:一是把静态的 class 文件加载到 JVM 内存,二是在 JVM 内存中进行 Java 类的生命周期管 ...

  2. GEEK学习笔记— —程序猿面试宝典笔记(二)

    所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...

  3. GEEK学习笔记— —程序猿面试宝典笔记(三)

    所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...

  4. java基础技术集合面试【笔记】

    java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...

  5. Java基础技术基础面试【笔记】

    Java基础技术基础面试[笔记] String.StringBuilder以及StringBuffer三者之间的区别? 三者的区别可以从可变性,线程安全性,性能这三个部分进行说明 可变性 从可变性来说 ...

  6. Linux device tree 简要笔记

    第一.DTS简介     在嵌入式设备上,可能有不同的主板---它们之间差异表现在主板资源不尽相同,比如I2C.SPI.GPIO等接口定义有差别,或者是Timer不同,等等.于是这就产生了BSP的一个 ...

  7. PHP面试专用笔记精简版

    [PHP笔记] 1.require 遇到即包含文件,require_once 只包含一次.require 遇到错误会终止,一般放在程序的最前面:include遇到错误会继续执行,一般放在流程控制语句中 ...

  8. 斯坦福大学CS231n简要笔记和课后作业

    笔记目录: 1. CS231n--图像分类(KNN实现) 2. 待更新... 3. 4.

  9. CSS权威指南之css声明,伪类,文本处理--(简要笔记一)

    1.css层叠的含义 后面的会覆盖前面的样式 2.每个元素生成一个框,也称盒.   3.替换元素和非替换元素. img如果不指定src的外部路径,该元素就没有意义.他由文档本身之外的一个图像文件来替换 ...

随机推荐

  1. MVC3中常用的一些控件及方法

    1.返回提示框 string script = String.Format("<script>alert('登录状态已失效! 请重新登录系统');location.href='{ ...

  2. checkbox页面全选

    http://pan.baidu.com/s/1tfzSa

  3. JMS + jboss EAP 6.2 示例

    .Net中如果需要消息队列功能,可以很方便的使用微软自带的MSMQ,对应到Java中,这个功能就是JMS(Java Message Service). 下面以Jboss EAP 6.2环境,介绍一下基 ...

  4. 扩展 easyui-tabs 插件 关闭标签页方法

    $.extend($.fn.tabs.methods,{ allTabs:function(jq){ var tabs = $(jq).tabs('tabs'); var all = []; all ...

  5. java中String、StringBuffer、StringBuilder的区别

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...

  6. Qt环境搭建(Qt Creator)+Visual Studio

    1.http://www.cnblogs.com/ranjiewen/p/5318768.html 简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了 ...

  7. Pathoto项目:AWS+golang+beego搭建

    帮兄弟写了一个网站,由于要在国外使用,选择了AWS作为服务器. 不知道后面的价格如何,12个月免费的确吸引了我. 花费3天时间,从注册到服务器搭建访问,终于搞定了.下面记录一下其中容易出错的命令. 1 ...

  8. JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别

    ECMAScript将对象的属性分为两种:数据属性和访问器属性.每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以 ...

  9. [BZOJ1564][NOI2009]二叉查找树(区间DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1564 分析: 首先因为每个点的数据值不变,所以无论树的形态如何变,树的中序遍历肯定不变 ...

  10. C# 压缩与解压字符串(面试题)

    /* * 题目:压缩字符串.如“abbcccddddeef”,压缩成“a1b2c3d4e2f1” * 解题: 这个题目也是面试常见的题目.看似很简单,其实暗藏杀机.一般的想法就是,一边遍历,一边计数, ...