Objective-C基础知识

1.@interface和@property的区别

  • 在@interface中定义的变量,这能在当前的类中访问,在其他类中是访问不了的;而用@property声明的变量可以在外部访问。
  • 用@property声明的变量,可以用点语法(self.变量名)的方式去读写,而用@interface的方式声明的就不可以,必须要写set和get方法。通过方法访问变量。

2.#import跟#include有什么区别。

  • #import是#include的改进版,#import确保引用的文件只会被引用一次,这样就不会陷入递归包含的问题中。

3.@class和#import有什么区别

  • #import会导入该文件的全部信息,包含实体变量和方法等。而@class只告诉编译器,后面声明的是名称是类的名称,不会包含变量和方法等。一般在头文件中使用@class,只需要知道被引用类的名称就可以了。

4.OC有多继承吗。

  • OC是单继承的编程语言,用代理代替离开多继承。

5.@property属性声明中参数

  • 读写属性:(readwrite/readnoly)
  • 内存管理:(assign/retain/copy)(strong)
  • 原子性:(atomicity/nonatomic)

6.NSMutabDictionary 的 setvalueforkey 和 setobjectforkey 的区别

  • setObject:forkey:中value是不能够为nil的;setValue:forKey:中value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法
  • setValue:forKey:中key只能够是NSString类型,而setObject:forKey:的可以是任何类型
7.@synthesize和@dynamic
  • 如果两个在@property的属性都没写,那么默认@syntheszie var = _var
  • @synthesize :如果没有手动实现set和get方法,那么编译器会自动为你加上这个方法。
  • @dynamic:属性的set和get方法都需要用户自实现,如果没有实现,编译时并不会报错,但是运行 instance.var = some 时程序会崩溃。
8.异常处理

@try,@catch,@thorw,@finally。当代码有可能出现异常时,我们把他放到@try语句块中。@catch()块包含了处理@try块里的抛出的异常的逻辑。无论异常是否发生,@finally块里面的语句都会执行。如果直接使用@throw块来抛出异常,这个异常本质上是一个OC的对象。咱们可以使用NSException对象,但是不局限于他们。

9.弱引用(week)和强引用(strong)
  • 默认情况下,一般指针都会用强引用(strong),只要引用存在,对象就不能被销毁,当所有强引用都去除时,对象才能被收集和释放。
  • 一些集合类不应该增加其元素的引用,因为会引起对象的无法释放。在这种情况下,需要使用弱引用(week)。当被引用对象消失时,弱引用会自动设置为nil。
10.OC的字符串和C字符串的区别
  • OC的字符串是对象,c的字符串是数组
11.OC的数组和C数组的区别
  • OC的数组是系统封装好的对象,c的数组是联想的内存空间
12.什么是面向对象,和面向过程的区别
  • 面向对象是把问题事物分解成一个一个对象,建立对象是为了解决问题的步骤中的行为。
    面向对象是以功能来划分问题,而不是步骤。
    面向过程是以步骤来解决问题,而不是功能。
    面向对象设计的程序有良好的可移植性和可拓展性
    面向对象的三大特性:封装、多态、继承
13.封装、多态、继承
  • 封装:将数据或方法集合在一个单元中(我们俗称的‘类’),提供相对应的接口。封装是实现面向对象程序设计的第一步。
    封装的好处:1.封装使得对代码的修改更加安全和容。2.封装是整个软件的开发复杂度大大降低。3.封装还可以避免命名冲突的问题。

  • 多态:通以操作作用不同对象,可以有不同的解释,产生不同的执行结果。
    通常就是强制类型转换

  • 继承:一个子类继承父类,有其父类的所有方法和属性。
    继承分单继承(一个类只能有一个父类)和多继承(一个类可以有多个父类)。
    OC 是单继承(通过协议的方式解决多继承的问题)
    继承的好处:1.一高了代买的复用性。2.让类与类之间产生了关系,提供了另一个特征多态的前提。

14.重载和重写的区别
  • 重写:子类方法覆盖父类方法,要求方法名和参数名都要一样。
  • 重载:通一个类的两个及以上的方法,拥有相同的方法名,但是参数不一样,方法体也不一样,最常见的例子就是类的重构函数。
15.oc的内存管理机制是什么。
  • OC的内存管理机制是ARC,自动引用计数
    当一个对象被创建之后它的引用计数为1,当调用这个对象的alloc、retain、new、copy方法之后引用计数值会自动在原来的基础上加1,当调用release方法之后它的引用计数值减1,如果一个对象的引用计数为0,则系统会自动调用这个对象dealloc方法来销毁这个对象
16.自动释放池

自动释放池使用@autoreleasepool关键字声明一个代码块,如果一个对象在初始化时调用了autorelease方法,name代码块执行完之后,在块中调用过autorelease方法的对象都会自动调用一次release。

  • 1.autorelease方法不会改变对象的引用计数,只是将这个对象放到自动释放池中。
  • 2.自动释放池实质是当自动释放池销毁之后,调用release方法,但是不一定能够销毁对象。例如当对象的引用计数大于1的时候,该对象是无法销毁的
  • 3.由于自动释放池是最后统一销毁对象。因此如果一个比较占用的内存的对象或者操作,最好不要放到自动释放池
17.深复制和浅复制
  • 浅复制:就只拷贝对象,对象的属性不拷贝,拷贝出来的对象和原来的对象共用属性,即指向同一个属性的地址。
  • 深复制:不仅拷贝了一个对象还拷贝了它的属性。即完全是两个东西,只不过内容相同而已。
18.KVC是什么?KVO是什么?
  • KVC:key value coding, 是一个非正式的protocol,提供一种机制来间接访问对象的属性
  • KVO:key value observing ,它能够观察一个对象的值的变化。
19.ios中的回调机制有哪些

代理模式
Block
单例
通知

20.常用的数据储存方式

1.数据库
2.Plist
3.归档
4.Nsuerdefault

21.14.类别category

这个是OC的语言的一个特性,可以在不改变类型和原来类的实现的前提下,实现对类的方法拓展。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容