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




数据结构及小问题程序代码实现

  • 2015年08月08日 15:20
  • 9.69MB
  • 下载

linux遇到的小问题

  • 2015年01月19日 00:12
  • 17KB
  • 下载

VMware Workstation虚拟机显示屏幕太小问题解决方法

VMware Workstation虚拟机显示屏幕太小问题解决详细步骤。

phpcmsv9 一些小问题

  • 2014年09月11日 11:50
  • 23KB
  • 下载

Eplan_p8初学者的的若干个小问题

  • 2014年09月10日 21:39
  • 390KB
  • 下载

Java double 相乘的小问题记录

看下面的一段代码的运行结果: [java] view plain copy   public class TestDouble {       public...

清除一些系统小问题带来的骚扰

  • 2013年08月30日 08:59
  • 820B
  • 下载

python中将中文汉字转换为英文首字母的代码及遇到的小问题

python中将中文汉字转换为英文首字母的代码及遇到的小问题 在地名地址工作中,有一步是将属性表中的单位汉字名称转换为对应的英文首字母名称 def multi_get_letter(str_inp...

android小问题

  • 2013年04月18日 12:25
  • 492B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oc中的小问题
举报原因:
原因补充:

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