iOS 复习题(二)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:34 点击:

1.#import和#include的区别 @class?

@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文 件中还是需要使用#import

而#import比起#include的好处就是不会引起交叉编译

 

2. readwrite,readonly,assign,retain,copy,nonatomic 属性的作用

@property是 一个属性访问声明,扩号内支持以下几个属性:
1,getter=getName,setter=setName,设置setter与 getter的方法名
2,readwrite,readonly,设置可供访问级别
2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题
3,retain,setter方法对参数进行release旧值再retain新值,所有 实现都是这个顺序(CC上有相关资料)
4,copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再 Copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。
5,nonatomic,非原子性访问,不加同步, 多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。锁被加到所属对象实例级(我是这么理解的...)。

3.在一个对象的方法里面:self.name= “object”;和
name =”object”
有什么不同吗?

答:

self.name ="object":会调用对象的setName()方法;

name = "object":会直接把object赋值给当前对象的name属性。

 

4.请简述self.name= nil的机制,以及与[namerelease]的区别?

self.name =nil;   //使用nil参数调用setName:方法

[name release]生成的访问器将自动释放以前的name对象

 

5.请简要说明viewDidLoad和viewDidUnload何时调用

答:

viewDidLoad在view从nib文件初始化时调用,

loadView在controller的view为nil时调用。

此方法在编程实现view时调用,view控制器默认会注册memory warning notification,

当view controller的任何view没有用的时候,

viewDidUnload会被调用,在这里实现将retain的view release,如果是retain的IBOutlet view 属性则不要在这里release,IBOutlet会负责release 。

 

6.实例化一个UITableView对象,要求写出关键语句?

答:UITableView *my = [[UITableView alloc]initWithFrame:<(CGRect)frame> style:<(UITableViewStyle)style>];

my.delegate = self;

my.dataSource = self;

首先需要分配空间设置表格类型

然后需要设置两个必须的委托对象。

 

7.使用sql语句查询出省名以湖开头,邮编为436001所在的市区?(5分)(表名及字段名自定义)

select*fromcitys where postcode=436001 and province=’湖%’;

8.打印结果

main()

 {

   int a[5]={1,2,3,4,5};

   int *ptr=(int *)(&a+1); 

   printf("%d,%d",*(a+1),*(ptr-1));

}

答:2,5

     *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5
  &a+1不是首地址+1,系统会认为加一个a数组的偏 移,是偏移了一个数组的大小(本例是5个int)
  int *ptr=(int *)(&a+1);
  则ptr实际 是&(a[5]),也就是a+5
原因如下:

  &a是数组指针,其类型为 int (*)[5];
  而 指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同。
  a是长度为5的int数组指针,所以要加 5*sizeof(int)

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Lexical or Preprocessor Issue 'xxx.h
  • ios学习笔记(二)xcode 4.3.2下实现基本交互
  • ios版本的helloworld
  • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
  • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
  • IOS类似iphone通讯录TableView的完整demo【附源码】
  • UITableView一些方法
  • [iPhone中级]iPhone团购信息客户端的开发 (二)
  • 如何为Iphone应用创建启动界面
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1