ios面试小问题

结合别人和自己总结的小问题

1.ios创建单列的两种方法(MRC ARC)

答:ARC    +(arcobject *)shard{

static arcobject* shardobject =nil;

static dispatch_once_t predicate;

dispatch_once(&predicate, ^{

shardobject=[[self alloc]init];

});

return shardobject;}


答:MRC      static mrcobject*shardobject=nil;

+(mrcobject *)shard{

if(!shardobject){

shardobject = [[self allocWithZone:NULL]init];

}

return shardobject;

}


2.object-c可以有多继承吗?可以实现多个接口吗?

答:object-c不能有多继承,可以实现多个接口,通过实现多个接口来完成c++的多继承。


3.#import  #include  @class之间的区别

答:#import是object-c里面导入头文件的关键字,使用#import只会导入一次不会重复导入   #include是c的导入头文件的关键字  @class是一个声明关键字,当执行时才会查看类的实现文件,可以解决头文件的相互包含。


4.属性readwrite  readonly  assign  retain copy 各是什么作用,在哪种情况下使用

答:readwrite是可读可写   ,需要生成getter setter方法时使用

readonly只可读    只生成getter方法 不允许属性在类外发生改变

assign赋值特性  setter方法传入参数赋值给实例变量,仅用于赋值

retain表示持有特性  setter方法传入参数先保留再赋值,传入的参数的retaincount加1

copy表示拷贝特性   setter方法将传入对象赋值一份,需要完全一份新变量时


5.id  nil分别代表什么

答:id声明的对象可以指向任何object-c类型的对象 需要注意的是id是个指针,所以在使用id的时候不需要加*号   而id *foo=nil则定义了一个指针,这个指针指向另一个指针

nil和c中的NULL相同nil表示一个object-c对象,这个对象的指针指向空


6.object-c如何对内存进行管理

答:object-c对内存管理主要有三种方式1arc(自动内存计数)2手动内存管理  3自动释放池


7.在object-c里面创建线程的方法是什么?在主线程中执行代码,方法是什么?如果想延迟执行代码 方法是什么?

答创建线程方法有三种  1 nsthread  2gcd  3nsoperation然后再将其加入队列中

执行主线程中执行代码performselectonmainthread

延迟执行

   // [self performSelector:@selector() withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>];

8.ios mvc开发模式

答:mvc 视图  模型  控制   所有的view都是属于视图  它独立模型层   由视图控制层控制   所有用户数据都是模型层  它独立于视图层  所有viewcontroller都是控制层 它负责控制视图 访问数据模型层






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值