A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 qiu1993 于 2016-2-18 21:33 编辑

一、简答题
1、宏定义的格式,在什么情况下使用枚举,什么情况下使用结构体
   #define 被替换内容   替换成的内容
枚举: 当一个变量只有有限的几个取值的时候,可以使用枚举
结构体(struct):用来存放若干个相同或者不同类型的一个构造类型

2、面向对象编程和面向过程编程
面向过程编程关注解决问题需要哪些过程
面向对象关注解决问题需要哪些具体对象,并通过对象来解决问题。
面向对象是基于面向过程的

3id instancetype的区别
id instancetype的区别   
id能作为方法或函数的返回值 参数值 也可以用来定义变量
instancetype 只能作为函数或者方法的返回值
instancetype对比id的好处就是:能精确的限制返回值的具体类型

4OC中使用字符串,为什么要在前面加上@
@符号
1、@符号的使用,@“”这个符号表示将一个C语言的字符串转化为OC中的字符串对象NSString
2、@标示符   OC中大部分的关键字都是以@开头的,比如@interface  ,@implementation  ,@end
5、现在有一个不知道什么类型的对象A ,如何获取对象A的类名并再创建一个对象B


问答题
1、简述 内存分区,以及存放的数据
   1)、栈     :是用户程序临时创建的局部变量
   2)、堆     :程序运行时动态分配 的内存。对象
   3)、BSS段(全局区) :用来存放未初始化的全局变量和静态变量
   4)、数据段(常量区) :已经初始化的全局变量和静态变量 (常量)   
   5)、代码段 :源代码产生的二进制数据



2、循环结构中break语句和countinue语句的作用,区别
     break通常用于循环语句和开关语句中,通常是结束当前的循环,break后的语句也不执行了,看见break就退出整个一层循环
         continue ,结束本次循环,继续下次循环  可以用在循环,可以用来加速循环 结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环
          continue可以加速循环



3#import   #include   @calss三者的意思,三者的不同
#import 跟#include 又什么区别,@class呢, #import<> 跟 #import”"又什么区别?#import是Objective-C导入头文件的关键字,#include是C/C++导入头文件的关键字,使用#import头文件会自动只导入一次,不会重复导入,相当于#include和#pragma once;@class告诉编译器某个类的声明,当执行时,才去查看类的实现文件,可以解决头文件的相互包含;#import<>用来包含系统的头文件,#import””用来包含用户头文件。 @class适用于前向声明一个类。但是没有引入,需要用这个类时,还是如要把这个类的头文件给improt进来的
4、简述你对SEL的理解,假设对象A有一个对象方法B,那么A如何通过SEL方式执行方法B
·  /* ·   
调用方法有两种方式: ·   
1.直接通过方法名来调用 ·  
2.间接的通过SEL数据来调用 ·  
*/

SEL s1;   //
手动把 run方法 转换为sel类型的     
   s1 = @selector(run2);
        //发送s1 p对象发送      
[p performSelector:s1];
        //间接的通过SEL数据来调用

27CAC8E814117F2F6A2CBAA8FBC3757C.jpeg (39.81 KB, 下载次数: 9)

这个的部分答案

这个的部分答案

7 个回复

倒序浏览
不错不错!谢谢分享~~~~~~~~~~~~~~~~~
回复 使用道具 举报
以上内容,真是太棒了
回复 使用道具 举报
哇,好牛
回复 使用道具 举报
现在论坛像你这样无私的,奉献的,雷锋一般的人物实在是不多了,太感谢你了...
回复 使用道具 举报
临近毕业,翻个几遍,四个月的知识尽在眼前,运筹帷幄,果断拿高薪
回复 使用道具 举报
陈旧 中级黑马 2016-2-18 23:10:29
7#
不错不错  加油
回复 使用道具 举报
奔跑的蚂蚁iOS 来自手机 初级黑马 2016-2-18 23:45:50
8#
非常感谢,一定好好看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马