oc中的小问题

原创 2015年11月17日 17:14:38

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在后




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

jquery中选择器查找元素兼容IE的小问题

" id="tr"> > 998 99A 20 1 1...

最大最小问题

安卓手机系统设置字体大小后与APP以及web端字体大小问题

安卓手机系统设置字体大小后与APP以及web端字体大小问题最近在做一些有关html和App的一些混合式开发,在测试过程中发现,android手机系统设置了字体大小,app应用中和web服务端的页面(也...

CSS常见小问题解决

结构体和类的大小问题

...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)