iOS 面试题:OC基本概念题
1.什么是类和对象?
类是一组具有同样特征和功能的事物的抽象
对象描写叙述了一个物体的特征和行为实现
类是对象的抽象 对象是类的实例
2.OC中定义类,创建对象,使用对象.
OC中定义类分为接口部分,实现部分
接口部分:对外声明类的特征和行为
实现部分:实现方法,即类的行为实现
创建对象须要进行分配内存空间和初始
3.声明方法,依据需求.区分:方法声明,方法实现,方法运行
4.继承.继承的全部特点
子类能够继承父类全部的声明的方法和除私有的以外实例变量
父类不能使用子类所创建的方法和实例变量
5.self和super
self 给对象发送消息 运行该类的方法
super 给对象发送消息 运行父类的方法
6.初始化方法.会依据需求自己定义,可以写出完整的实现
例: - (id) initWithName:(NSString *)name
sex:(NSString *)sex
age:(int)age
{
self = [super init];
if(self)
{
self.name = name;
self.sex = sex;
_age = age
}
return self;
}
7.实例变量的可见度,以及各自的特点,默认可见度是什么?
怎样在类的外部,操作默认可见度的实例变量.
@public 公有的
@protected 保护的(默认的)
@private 私有的
在类的外部,操作默认可见度的实例变量 能够定义实例变量的属性,也能够声明和实现setter和getter方法
8.什么是setter,getter方法,怎样声明?
设置器 - (void) setName:(NSString *)name
訪问器 - (NSString *) name;
9.属性的作用.怎样声明属性,怎样实现属性(声明和实现所相应的keyword)
作用:提供外部訪问 自己主动生成setter和getter方法
@propert (属性的属性) 返回值或參数类型 属性的名字
@synthesize 属性的名字 = 实例变量
10.属性的三个特性?没有特性都有哪些内容,使用场景,特点作用
读写设置:readonly(仅仅读) readwrite(默认)
语义设置: assign(默认 既能够修饰基本数据类型还能够修饰对象)
retain(修饰对象)
copy(修饰对象 而且所修饰的对象要遵守<NSCopying>协议)
原子性:noatomic(不能保证多线程安全)
atomic(默认 保证多线程安全)
11.属性的setter和getter方法的内部实现
用retain修饰
(void) setName:(NSString *)name
{
if(_name != name)
{
[_name release];
_name = [name retain];
}
}
(NSString *) name
{
return [[_name retain] autorelease];
}
12.类的扩展.(类目 延展 协议(一对方法)).代理(运行协议里方法的对象)
类目(category):为没有源码的类加入方法 没有实例变量
类目的声明: @interface 类的名字 (类目的名字)
@end
类目的实现: @implementation 类的名字
@end
注:类目的方法若与类的方法同样 类目的方法优先级高
延展(extention):(匿名类目)管理”私有”方法 写在.m文件里 能够有实例变量
延展的声明:@interface 类的名字 ()
@end
注:声明在延展里的方法必须实现
协议(protocol):没有方法实现 仅仅有方法声明 仅仅有.h文件
默认keyword@require 必须实现 @optionol 能够不实现
协议的声明:@protocol 协议的名字 <NSobject>
注:一个类能够接受多个协议,在< >中用”,”分隔开.用协议能够实现多继承
13.foundation(框架).NSString,NSArray,NSDictionary,NSSet(对象的内容互异).(区分可变和不可变,创建对象,经常用法,类的特点)
NSString 不可变(自身)
命名规则
NSString
第一,创建 initWithFormat或者stringWithFormat
第二,求字符串长度 length
第三,推断字符串是否相等 isEqualToString
第四,字符串替换 stringByReplacingOccurrenceOfString:withString:
第五,字符串比較 compare 返回值枚举
第六,字符串拼接 stringByAppendingFormat
第七,求字符 substringFromlndex
第八,查询字符串 rangeOfString
第九,前缀,后缀 hasPrefix hasSuffix
第十,字母大写 uppercaseString
NSMutableString 可变字符串
第一,创建 使用父类继承的方法或者使用自己的创建方法 initWithCapacity
第二, 增 appendFormat: ///////////
第三, 删 deleteCharacterslnRange:
第四, 改 replaceCharacterslnRange:
第五, 查 insertString:atlndex: /////////////////
NSArray 容器 仅仅能存储对象(继承自NSObject的类) 不可变的数组 不能加入 不能删除,不能改动,
第一,创建 initWithObjects: arrayWithObjects:
第二,看元素 ,objectAtIndex:
第三,数组个数, [array count]
NSMutableArray 可变字符串
第一,增(加入), addObject
第二,删 removeObjectAtIndex: removeObject removeAllObjects
第三,插入 insertObject: atIndex:
第四,替换 replaceObjectAtlndex: withObject:
第五,交换 exchangeObjectAtIndex:(目的串) withObjectAtIndex:(来源串)
NSValue , NSNumber 容器,转换作用
NSValue 转换结构体为对象
NSNumber 转换基本数据类型为对象
14.内存管理
对内存管理的理解:
对象全部权:通过retain alloc copy 是对象的引用计数加1
内存泄露:仅仅分配使用了一块内存,没有释放
过度释放:释放多次
野指针:指针指向不存在的对象
iOS 面试题:OC基本概念题的更多相关文章
- iOS 面试题:OC标题的基本概念<延续>
第一,如何确定一个方法方法名称 删除减号,加,删除返回值,删除参数类型,删除参数,剩下的就是的方法名 秒,id,能够用assign,copy,retain,依据须要使用 第三,autorelease ...
- iOS谋职之OC面试题
iOS谋职之OC面试题 iOS求职之OC面试题 IOS求职之OC面试题 1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和 ...
- iOS面试题大全-点亮你iOS技能树
所有的内容大部分来自于网络的搜集,所以我不是一个创造者,而是一个搬运工.我尽量把题目,尤其是参考答案的出处列明.若有任何疑问,建议,意见,请联系我. 第一部分面试题来源于iOS-Developer-I ...
- ios 面试题 经典(比较全) 根据重点总结
史上最全的iOS面试题及答案 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encodin ...
- iOS之面试题:腾讯三次面试以及参考思路
使用了第三方库, 有看他们是怎么实现的吗? 例:SD.YY.AFN.MJ等! <1>.SD为例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- 最全的iOS面试题及答案-转载
1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...
- iOS面试题及答案2015.6.7
iOS面试题及答案 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...
- [转载]iOS面试题总
转载自:http://blog.sina.com.cn/s/blog_67eb608b0101r6xb.html (2014-06-13 20:23:33) 转载▼ 标签: 转载 crash 原文 ...
- ios面试题1
iOS面试题 1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSS ...
随机推荐
- vijos 1067 Warcraft III 守望者的烦恼 矩阵
题目链接 我们可以很容易的推出dp的式子, dp[i] = sigma(j : 1 to k) dp[i-j]. 但是n太大了, 没有办法直接算, 所以我们构造一个矩阵, 然后快速幂就好了. 就像这样 ...
- wget www.baidu.com执行流程分析
下载网页的关键函数: main.c(main) b 1394 url_parse:解析url,获取url相关信息,返回结构体 struct url 的指针,存于 url_parsed retrieve ...
- c语言 选择排序
选择排序 // int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4}; // int count = sizeof(array) / sizeof(array ...
- html---id,name和value
id是唯一标识符,不允许有重复值(类似数据表的主键,pk),可以通过它的值来获得对应的html标签对象.(如果在同一页面代码中,出现重复的id,会导致不可预料的错误) js代码可通过document. ...
- onActivityResult不起作用?可能是和你的launchMode有关!
昨天在自己的项目中用到了onActivityResult()方法获得activity的返回值.我从Activity01通过 startActivityForResult启动了Activity02和Ac ...
- 贴片方式COB COF COG
英文简称: COB英文全称: Chip On Board中文全称: 通过邦定将IC裸片固定于印刷线路板上 英文简称: COF 英文全称: Chip On FPC 中文全称: 将IC固定于柔性线路板上 ...
- CentOS 七 vs CentOS 6的不同
CentOS 七 vs CentOS 6的不同 CentOS 7 vs CentOS 6的不同(1)桌面系统[CentOS6] GNOME 2.x[CentOS7] GNOME 3.x(GNOME ...
- 美国TJX公司 - MBA智库百科
美国TJX公司 - MBA智库百科 TJX公司总部设在美国波士顿,在北美地区和许多欧洲国家开有连锁分店,仅在美国就有2500多家分店. TJX Companies, Inc. 是美国和全世界的服装和家 ...
- CSSOM View Module
就在8月份,也就是上次gf大姨妈来的时候,W3C出炉了CSSOM视图模块(CSS Object Model View)草案.CSSOM视图模块(CSSOM View Module)定义了一些 API, ...
- android开发利器--站在巨人肩膀上前行
本文主要介绍有助于android开发的三方平台和站点. 一:开发阶段 1:SVN(一个开放源码的版本号控制系统) 团队开发没有server,代码管理就没那么方便了,推荐taocode阿里开源站点,方便 ...