[Objective-C 面试简要笔记]
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 面试简要笔记]的更多相关文章
- Java基础技术JVM面试【笔记】
Java基础技术JVM面试[笔记] JVM JVM 对 java 类的使用总体上可以分为两部分:一是把静态的 class 文件加载到 JVM 内存,二是在 JVM 内存中进行 Java 类的生命周期管 ...
- GEEK学习笔记— —程序猿面试宝典笔记(二)
所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...
- GEEK学习笔记— —程序猿面试宝典笔记(三)
所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...
- java基础技术集合面试【笔记】
java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...
- Java基础技术基础面试【笔记】
Java基础技术基础面试[笔记] String.StringBuilder以及StringBuffer三者之间的区别? 三者的区别可以从可变性,线程安全性,性能这三个部分进行说明 可变性 从可变性来说 ...
- Linux device tree 简要笔记
第一.DTS简介 在嵌入式设备上,可能有不同的主板---它们之间差异表现在主板资源不尽相同,比如I2C.SPI.GPIO等接口定义有差别,或者是Timer不同,等等.于是这就产生了BSP的一个 ...
- PHP面试专用笔记精简版
[PHP笔记] 1.require 遇到即包含文件,require_once 只包含一次.require 遇到错误会终止,一般放在程序的最前面:include遇到错误会继续执行,一般放在流程控制语句中 ...
- 斯坦福大学CS231n简要笔记和课后作业
笔记目录: 1. CS231n--图像分类(KNN实现) 2. 待更新... 3. 4.
- CSS权威指南之css声明,伪类,文本处理--(简要笔记一)
1.css层叠的含义 后面的会覆盖前面的样式 2.每个元素生成一个框,也称盒. 3.替换元素和非替换元素. img如果不指定src的外部路径,该元素就没有意义.他由文档本身之外的一个图像文件来替换 ...
随机推荐
- 关于编写Java程序让Jvm崩溃
今天在书上看到一个作者提出一个问题“怎样通过编写Java代码让Jvm崩溃”,我看了之后也不懂.带着问题查了一下,百度知道里面有这样一个答案: package jvm; public class Cra ...
- 关于code reiview
先谈谈三个code review的关键因素: 一.创建review要简单 code reivew是一个程序员日常工作中经常做的一件事,理论上来讲,任何一个将要submit到SCM的change,都必须 ...
- Webwork 学习之路【01】Webwork与 Struct 的前世今生
Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts ...
- Zepto的天坑汇总
前言 最近在做移动端开发,用的是zepto,发现他跟jquery比起来称之为天坑不足为过,但是由于项目本身原因,以及移动端速度要求的情况下,也只能继续用下去. 所以在这里做一下汇总 对img标签空sr ...
- HBase初探
string hbaseCluster = "https://charju.azurehdinsight.net"; string hadoopUsername = "账 ...
- Android开发之ViewPager做新手引导界面
先看一下我们要开发的界面(三张图片,滑到最后一个会出现开始体验的Button,下面的小红点会跟着一起滑动): 首先看一下布局文件: <?xml version="1.0" e ...
- 十天冲刺---Day7
站立式会议 站立式会议内容总结: 燃尽图 照片 两个人编码其实效率挺高的.但是在一些方面,比如说页面UI的编写,会非常吃力,很难达到自己的效果. 由于埋头在编码,所以issues的增加随之停止. 有点 ...
- Mybatis学习--Mapper.xml映射文件
简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...
- Android Studio2.0 教程MAC版 -快捷键篇
本文转至 Android Studio2.0 教程从入门到精通MAC版 - 提高篇 ( OPEN 开发经验库) 第二篇我们开发了一个Hello World应用,并介绍Android Sutdio的界面 ...
- Jenkins的maven工程打包的时候怎么指定不同环境的配置文件
http://outofmemory.cn/code-snippet/6643/maven-profile-define-enviroment-package 在打包的时候我们添加上 这里我们指定配置 ...