(oc测试题1.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(oc测试题1

一、判断题 1、声明了@property指令,就不能再用setter,getter 方法了。 可以,只是说我们更方便了 2、注释可以出现在程序的任何位置。 对的 3、一个文件中可以声明多个类。 对的 4、对象和现实中的物体是一一对应的关系。 5、使用一个类方法也需要构建一个对象。 6、@class 指令可把想要的类的接口文件包含进来 如果在a.h里import了b.h,那么所有import了a.h的文件都会同时与b.h产生编译依赖,一旦b.h被修改,所有应用了a.h 的文件也要被重新编译。如果可以使用前置声明而不是import b.h,而是用@class,就可以解除这种依赖关系,b.h被修改,只import了a.h的文件就未必需要重新编译。 7、对象被创建出来后,其引用计数为0. Objective-C的对象拥有引用计数,对象被创建后其引用计数为1,当其引用计数减少为0时,系统将会销毁此对象 8、使用便利构造器获得的对象也需要释放。 不需要 8.retain、 copy.assign 举个例子可能更好理解点? NSString *pt = [[NSString alloc] initWithString:@abc];? 上面一段代码会执行以下两个动作? 1 在堆上分配一段内存用来存储@abc??比如:内存地址为:0X1111 内容为 abc? 2 在栈上分配一段内存用来存储pt??比如:地址为:0Xaaaa 内容自然为0X1111??? 下面分别看下assign retain copy? assign的情况:NSString *newPt = [pt assing];?? ? 此时newPt和pt完全相同 地址都是0Xaaaa??内容为0X1111??即newPt只是pt的别名,对任何一个操作就等于对另一个操作。 因此retainCount不需要增加。? retain的情况:NSString *newPt = [pt retain];?? ? 此时newPt的地址不再为0Xaaaa,可能为0Xaabb 但是内容依然为0X1111。 因此newPt 和 pt 都可以管理abc所在的内存。因此 retainCount需要增加1??? copy的情况:NSString *newPt = [pt copy]; ? 此时会在堆上重新开辟一段内存存放@abc 比如0X1122 内容为@abc 同时会在栈上为newPt分配空间 比如地址:0Xaacc 内容为0X1122 因此retainCount增加1供newPt来管理0X1122这段内存? ? 9、objective – c 可以多重继承。 不可以 10、冒号也是方法名的一部分。 不是 11、在类方法中可以使用实例变量。 不可以 12、默认情况下,实例变量没有特别说明的话,它们的使用范围是@private 类型。 13、NSString 对象可以被修改。 14、break只会跳出本次循环。 15、求数组的内容的个数用length方法。 16、字典是根据其位置来索引数据的。 17、协议中定义的方法默认是必须实现的。 18、定义类目必须要拿到自己类的源代码。 19、同时接受多个协议时,协议名之间要用逗号隔开。 20、数组只能保存对象。 21、retain的作用是引用计数减一。 22、autorelease只不过是意味着“预定延迟发送一条release消息。 23、objective-c的对象生成之后,需要一个指针来指向它。 24、objective-c的对象在使用完成之后不会自动销毁,需要执行dealloc来释放,否则内存泄露。 25、 声明一个类时必须命名它的父类。 26、 实例变量在一对{}外。 27、实例方法不能直接访问实例变量。 28、方法不能与变量重名。 29、方法需要传递多个参数时,参数以逗号分隔。 30、消息表达式不能嵌套使用。 31、点语法在实现上与访问器没有区别,但是会造成性能上损失或产生额外线程调用。 32、重载方法返回值,参数个数可以不同。 33、类方法实例对象也可以使用。 34、实例对象都是通过调用类对象的类方法生成的。 对的 35、初始化方法就是在对象创建的时候给实例变量一些初始值。 对的 36、在Objective -c 中,对象不断地被其它对象创建、使用和销毁。 对的 37、为了保证程序不产生额外的内存开销,当对象不再被需要以后,应当被立即销毁。 对的 38、对象也有可能在创建了一个对象以后,把他传递给别一个对象去使用。 39、不是每个对象都有引用计数。 错的 40、便利构造器产生的对象应当由使用者进行销毁。 41、在dealloc方法中对变量的释放顺序与初始化的顺序相同。 相反 42、属性声明可以出现在类的接口定义的方法区域的任意位置。 对的

文档评论(0)

popo786 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档