关闭

oc中的小问题

42人阅读 评论(0) 收藏 举报
分类:

1.@implementation Person

@synthesizeage

-(void)setAge:(int)newAge

{

       self.age= newAge;

      }

 @end

  Person实例的name属性赋值时,程序的运行结果是:  (  C    )

  A.程序正常运行

    B.程序立即崩溃

   C.程序陷入死循环

    D.不确定

这道题应该选C,因为 self.age是点语法,当点语法在等号左边的时候是setter语法,在等号右边的时候是getter语法

所以当执行到 self.age= newAge;是会调用setter语法,所以程序就会陷入死循环


2.查看下列代码,能正确输出number的选项是( D   )

                      @interface MyClass : NSObject{

                                               intnumber;

                      }

                      +(void) printNumber;

                      @end

                      @implementation MyClass

                      +(void) printNumber

                      {

                                         number =10;

                                          NSLog(@"%d",number);

                      }

                      @end

 

                      A.[MyClassprintNumber];

                      B.MyClass * obj = [[MyClass alloc] init];

                          [objprintNumber];

                      C.printNumber();

                      D.编译错误,无法执行

在‘+’方法中不能出现变量,所以错误,如果把‘+’改成‘-’就对了

3.int largenumber =1000000000;

                      for(inti=0;i<largenumber;i++){

                                        Person * p = [Person person];

                                      [pstudy];

                      }

                  这段代码有什么问题,应该怎么去改?为什么?(不要修改以写出的代码)

因为便利构造器产生的对象如果没有autoreleasepool的话是无法释放的,所以当循环数值过大时,产生的对象会越来越多而且使用过的对象无法释放,内存占用越来越大,严重影响性能.所以要在for循环中使用autoreleasepool,

 

                      intlargenumber = 1000000000;

                      for(int i=0;i<largenumber;i++){

                                             @autoreleasepool{

                                                            Person * p = [Person person];

                                                        [p study];

                                             }

                      }

 

.4.下面程序段的输出结果是(  C )                                                                                                                                                                                                                                                                                                               

                      NSMutableDictionary* dic = [[NSMutableDictionary alloc]            initWithObjectsAndKeys:@"1",@"2",@"1",@"3",@"1",@"4",nil];

                      NSArray *arr1= [[NSArray alloc] initWithArray:[dic allKeys]];

                      NSArray *arr2= [[NSArray alloc] initWithArray:[dic allValues]];

                      NSMutableDictionary*dic2 = [[NSMutableDictionary alloc] initWithObjects:arr1 forKeys:arr2];

                      NSLog(@"%@",dic2);

 

                      A.1=2 1=3 1=4

                      B.2=1 3=1 4=1

                      C.1=4

                      D.4=1

字典输出的时候key在前,value在后




0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:325次
    • 积分:82
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档