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文件

                          默认[email protected] 必须实现 @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基本概念题,布布扣,bubuko.com

时间: 2024-10-09 16:06:53

iOS 面试题:OC基本概念题的相关文章

iOS 面试题:OC基本概念题&lt;续&gt;

第一,怎么确定一个方法的方法名 去掉减号,加号,去掉返回值,去掉参数类型,去掉参数,剩下的就是方法名了 第二,id指向任何对象类型,可以用assign,copy,retain,根据需要使用 第三,autorelease 在什么时候释放? 在碰到autoreleasepool的时候释放(可以把好几个相同的变量放几个不同的池里) 第四,协议的方法默认是@required 第五,字典集合的特点? 字典是以键值对形式的保存元素 只能存储对象,不能存储基本数据类型 第六,如何定义一个类? 类的接口部分包含

iOS 面试题:OC标题的基本概念&amp;lt;延续&amp;gt;

第一,如何确定一个方法方法名称 删除减号,加,删除返回值,删除参数类型,删除参数,剩下的就是的方法名 秒,id,能够用assign,copy,retain,依据须要使用 第三,autorelease 在什么时候释放? 在碰到autoreleasepool的时候释放(能够把好几个同样的变量放几个不同的池里) 第四,协议的方法默认是@required 第五,字典集合的特点? 字典是以键值对形式的保存元素 仅仅能存储对象,不能存储基本数据类型 第六,怎样定义一个类? 类的接口部分包括实例变量,属性,和

iOS谋职之OC面试题

iOS求职之OC面试题 IOS求职之OC面试题 1.Objective-C的类可以多重继承么?可以采用多个协议么? 答:不可以多重继承,可以采用多个协议. 2.#import和#include的区别是什么?#import<> 跟 #import""有什么区别? #import能避免头文件被重复包含的问题: 1) 一般来说,导入objective c的头文件时用#import,包含c/c++头文件时用#include. 使用include要注意重复引用的问题: class A

iOS开发OC基础:OC基础概念总结,OC面向对象的思想

一.什么是OOP: OOP(Object Oriented Programming):面向对象编程 二.面向对象和面向过程的区别: 面向过程编程:分析解决问题的步骤,实现函数,依次使用面向对象编程:分解问题组成的对象,协调对象间的联系和通信,解决问题. 面向过程是以事件为中心,关心的是完成这个事件的详细步骤:面向对象是以事物为中心,关心的是事物应该具备的功能,而完成一个事件只是事物所有功能里面的一个小功能(以过程为中心,以对象为中心) 三.类和对象 对象定义了解决问题的步骤中的行为,不刻意完成一

iOS面试题系列之Objective-C相关

1.简述你项目中常用的设计模式.它们有什么优缺点? 常用的设计模式有:代理.观察者.单例. (1)单例:它是用来限制一个类只能创建一个对象.这个对象中的属性可以存储全局共享的数据.所有的类都能访问.设置此单例中的属性数据. 优点:是它只会创建一个对象容易供外界访问,节约性能. 缺点:是一个类只有一个对象,可能造成责任过重,在一定程度上违背了"单一职责原则".单例模式中没有抽象层,所以单例类的扩展有很大的困难.不能过多创建单例,因为单例从创建到程序关闭前会一直存在,过多的单例会影响性能,

iOS面试题,希望给面试的同学一点帮助。

iOS基础面试题 1.用objective-c写一个插入法排序 2.写一个NSString类的实现 + (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding{ NSString *

半年努力,我终于把这100家企业iOS面试题整理完了(附答案)!

####100家知名企业今年来iOS面试题合集: 你要的这里都有: 企业要的这里也有: 从基础开始到进阶.深入底层 整理出188个面试题,全是干货 这些全部是题目跟类目,每个题目都会有相对的答案,由于字数太多所以我整理出一个文档,文档获取地址,作者创建的iOS行业交流群:763164022,加群在群文件下载 ####目录展示: 1.swift和oc的区别2.编译链接3.synthesize & denamic4.在项目开发中常用的开发工具有哪些?5.UITableView & UIColl

最全的iOS面试题及答案-转载

1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现多个接口可以完成C++的多重继承:Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系. 2. #import 跟#include 又什么区别,@class呢, #import<> 跟 #import””又什么区别?

[转载]iOS面试题总

转载自:http://blog.sina.com.cn/s/blog_67eb608b0101r6xb.html (2014-06-13 20:23:33) 转载▼ 标签: 转载   crash 原文地址:iOS面试题总作者:唯一的弟子 1.简述OC中内存管理机制.与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonato