iOS基础

1.#import与include @class的区别

@class 一般用于头文件中要声明某个实例变量时候用,其实也就是某个类的声明,当用到的时候编译器执行时,才会找它的实现文件。

#import是oc中用于导入头文件,include是在c中导入头文件的,#import比起#include就是不会引起交叉编译。


2.对象方法中,self.name = @"liming",和name = "liming"有什么不同。

 self.name:会调用setName:方法,后者会直接赋值给当前对象属性

3.static的作用?

   1.函数体内的static变量的作用范围为改函数体,不同于auto变量,该变量只被分配一次。

   2.在模块内的时候,static的全局变量只能被模块所用函数访问,static函数只能被这一模块内的其他函数调用,

   3.在类中,static的全局变量属于整个类所有,static成员函数属于整个类所有。

4.说明内存分区的情况

   1.代码区:存放的是二进制代码

   2.数据区:系统运行时申请内存并初始化,系统退出时由系统释放,存放有全局变量,静态变量,常量。

   3.堆区:通过new等操作动态申请得到,需要程序员手动申请和释放。

   4.栈区:函数模块内申请,函数结束由系统释放。存放局部变量,函数参数。

5.MVC模式?

   模型、视图、控制器。

   模型:定义了程序的数据和操作数据逻辑,

   视图:显示应用程序的数据。

   控制器:是模型和视图之间的协调者。

6.oc中加号方法和减号方法的区别?

  oc中加号是类方法,属于静态方法,减号是实例方法,

7自动释放池?如何工作

   自动释放池:当您向一个对象发送autoRelease消息的时候,cocoa会将该对象的一个引用放入到自动释放池中,自动释放池内作用域的其他对象是可以向它发送消息的,当程序执行到作用域的结束位置,自动释放池就会释放,池子中所有对象都会释放。

8.oc为什么是动态语言

   动态类型:运行时决定对象的类型。

   动态绑定:基于动态类型,某个实例对象被确定后,其类型便被确定,该对象的属性和响应消息完全确定。

   动态加载:开发icon图片的时候在Retain设备上要多添加一张@2x的图片,当设备更换时候图片会自动替换。

9.视图控制器的声明周期?

    init        初始化

    awakeFromNIb           loadView之前的工作在这里

    viewDidLoad              一个viewcontroller的一个生命周期调用一次

    viewWillAppear          view将要出现,每次view消失再出现都会调用

    viewWillLayoutSubViews     对子视图进行布局

    viewDidLayoutSUbVIewS 完成对子视图布局

    viewWillDisapper          view将要消失

    viewDidDisapper          view已经消失

10、动画类型:显式和隐式

11.实现表格的话,我们需要设置UITableView的什么属性、实现什么协议?

     设置UITableView的datasource、和delegate属性,遵循UITableviewDataSource、UITableviewDelegate协议。

12.操作socket的集中方法?

  CFNetwork、CFSocket、BSD Socket

13、代理为什么用weak修饰?

    先来说说weak:weak == “非拥有关系” ,说明该对象不负责保持delegate这个对象,delegate这个对象的销毁由外部处理。

     strong:该对象强引用delegate,外界不能销毁delegae对象,会导致循环引用,

14、类别的作用,继承和类别的比较?

        类别:在不改变原有类代码的情况下添加新的方法,如果类别和原有类名产生冲突会覆盖原来的方法,类别具有更高优先级,

        作用:将类的实现可以放在不同的文件中;创建对私有方法的前向引用(调用类的私有方法,分类写在.h中无用,对此一举,写在.m中无效;单独创建独立的分类有效);向对象添加非正式协议(非正式协议是NSObject类的类别)。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值