zoukankan      html  css  js  c++  java
  • IOS学习2

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

    都引用一个类,根本定义区别:#include ,#import会把所有的copy一份到该文件

    #import比#include的优势,import不会引起交叉变异(同一个文件不会多次引用)

    在 Objective-C 中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。

    一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用 #include。

    @class 仅仅事申明该类

    2 typedef作用

    简写代码。 一般结构体,block代码块时常用。编译时替换。

    与#define区别,#define编译前执行。

    注意:
    typedef  pstr char *

    const pStr p2的含义是:限定数

    据类型为char *的变量p2为只读,因此p2++错误。-------只读。@!

    3 动态绑定

    用于多态。 id类型。在编译时能够

    1. 简答题(每道2分) 总分20

    1.1简述#import和@class的作用与区别。

    1.2简述typedef的作用。

    1.3什么是动态绑定。

    1.4列举objective-c的优缺点。

    1.5简述alloc,dealoc retain,release的功能。

    1.6使用点语法与直接赋值有什么区别,比如self.name=@“student”与_name=@“student”

    1.7copy,assign,retain分别什么情况下使用。

    1.8objective-c有私有方法吗?如果没有,如何实现,如果有如何声明。

    1.9static关键字的作用。

    1.10类方法与实例方法创建的对象的区别。


    2.算法总分30分


    2.1

    //对指定数组降序排列,数组中保存的内容为字符串(5分)

    +(NSArray*)sortArray:(NSArray*)array;


    2.2

    //用NSLog打印九九乘法表(5分)

    +(void)printTable;


    2.3

    //对指定的字符串(单词间用空格分隔)进行分析,返回它里边所有单词出现的次数,返回值字字典 用单词作为key, 出现次数作为值((10分)

    +(NSDictionary*)wordCount:(NSString*)fileContent;


    2.4

    //根据输入的内容打印(10分)

    +(void)print:(NSInteger)count blankString:(NSString*)blankString flagString:(NSString*)flagString;

    //比如 [class print:5 blankString:@“+”flagString:@“#”];

    + + # + +

    + # + # +

    # + + + #

    + # + # +

    + + # + +


    3.类设计


    3.1公司类与员工类(25分)

    员工类 Staff(5分)


    成员变量


    姓名(NSString) name


    工龄(CGFloat) year (需要根据入职时间及公司成立时间计算得出)


    部门(NSString) department


    职位(NSString) post


    领导(Staff) leader


    入职时间(NSString) time


    方法


    三个参数的初始化方法(姓名,入职时间,部门),其它值可通过点语法赋值

    -(id)initName:(NSString*)name time:(NSString*)time department:(NSString*)department;


    打印方法

    格式 “姓名:%@,工龄:%f,部门:%@,职位:%@,入职时间:%@“

    -(void)print;


    公司类Company(20分)


    成员变量


    公司名(NSString) name


    成立时间(NSString) createTime


    法人(Staff) leader


    //部门名为字典的key,值为这个部门的所有员工数组

    部门(NSMutableDictionary ) departmentArray


    方法


    一个参数的初始化方法(参数为数组类型,包含三个值,分别为公司名,成立时间)


    //添加新员工,如果员工所在部门不存在则创建,如果这个员工为这个部门领导要通知所有其他员工,不能重复添加员工(名称和和入职时间都一样的员工)

    -(void)addStaff:(Staff*)staff;(5分)


    //根据姓名和入职时间查找员工

    -(Staff*)findStaff:(NSString*)name time:(NSString*)time(5分)


    //将指定的员工换到新部门

    -(BOOL)changeDepartment:(Staff*)staff department:(NSString*)department;(5分)


    //测试方法 创建公司,创建三个部门,每个部门至少两个员工,将所有方法测试一遍

    +(void)Test;


    3.2书签及其管理类(70分)


    URLItem类(书签类) (5分)


    成员变量


    唯一索引值 id(NSNumber类型)

    网址url(字符串)

    标题 title(字符串)

    星级 star(NSNumber类型)

    描述 description(字符串)

    访问次数 vistis(整型)


    TagItem类(标签类) (5分)


    成员变量


    唯一索引值 id(NSNumber类型)

    标签名name(字符串)

    访问次数 vistis(整型)


    Bookmark类(书签管理类)


    方法


    1.添加书签:参数有网址,标题,标签 (5分)


    其中标签是以逗号分隔开的一些词或字组成的字符串,比如@"明星,我的最爱,八卦"


    2.删除书签(可以用id,url两种方法删除书签)(5分)

    3.查询书签(可以用id,url,标签名来查找书签)(5分)


    4.修改书签(5分)

    确定要修改的书签的参数可能是id或url

    要修改的值可能是标题,创建时间,或标签(对原有标签改名或全部替换)


    5.获得所有书签(可按星级,访问次数排序)(可能有没有标签的书签)(5分)

    6.获得所有标签(可按标签名,访问次数排序)(5分)


    7.用标签名删除标签(有这个标签的所有书签的这个标签都要删除)(10分)


    8打印功能(5分)


    打印某一个书签的所有标签

    打印某一个标签的所有书签

    打印所有书签

    打印所有标签


    9给已有书签添加标签(5分)


    10.测试方法,完成所有你实现方法的测试(10)

  • 相关阅读:
    面试90%都会翻车的高并发分布式事务,我劝你好好啃透!
    JVM最多支持多少个线程?你知道吗?
    利用注解 + 反射消除重复代码(Java项目)
    ASP.NET HTTP模拟提交通用类 GET POST
    UPW学习资料整理 .NET C# 转
    前端引擎初步设计稿 -通过配置生成动态页面 ,LandaSugar平台 .NET-C#-MVC
    分享一个ASP.NET 文件压缩解压类 C#
    验证码的种类与实现 C#封装类
    ASP.NET MVC 使用 IOC框架 AutoFac 自动释放数据库资源
    ASP.NET MVC权限验证 封装类
  • 原文地址:https://www.cnblogs.com/pandans/p/4284340.html
Copyright © 2011-2022 走看看