笔试题01

希望读者带着批评的眼光,别误导了您!本人才疏学浅,略做记录,您有更好答案,请您指教!

1. 如何实现应用第一次启动时的使用向导?

这个可以理解为每次版本高更新时,第一次打开首先显示的应该是引导画面。
在AppDelegate.m文件中实现判断

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//在此处判断是否为新版本是否为第一次登陆
//如果是第一次登陆,将rootViewController设置为引导控制器
    self.window.rootViewController = NewFeatureController;
}

2. 如何实现一个自定义视图,给定一个NSArray的坐标点数组,在视图上显示对应的曲线。

相关知识: 绘制 文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
CGContextRef:Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.
需要重写:- (void)drawRect:(CGRect)rect 方法。
附上文章一篇 写的非常好!

效果图

3. 如何为一个TextField控件加入自定义的边框?

1.重写一个文本将
2.简单的方法:
self.background = [UIImage imageNamed:@"searchbar_textfield_background"];
其他的一些属性

设置边框样式
[textField setBorderStyle:UITextBorderStyleNone];
设置边框颜色
textField.layer.borderColor = [[UIColor redColor]CGColor];
//设置UITextField的文字颜色
tf.textColor=[UIColor redColor];
 
//设置UITextField的文本框背景颜色
tf.backgroundColor=[UIColor grayColor];
 
//设置UITextField的边框的风格
tf.borderStyle=UITextBorderStyleRoundedRect;

 
//设置UITextField的代理
tf.delegate=self;
 
//设置UITextField的文字对齐方式
tf.textAlignment=UITextAlignmentCenter;//居中对齐
tf.textAlignment=UITextAlignmentLeft;//左对齐
tf.textAlignment=UITextAlignmentRight;//右对齐
tf.textAlignment=UITextAlignmentFill;//填充对齐
 
//设置UITextField的文字大小和字体
tf.font=[UIFont fontWithName:@"Times New Roman" size:20];
 
//设置UITextField自适应文本框大小
tf.adjustsFontSizeToFitWidth=YES/NO;//自适应宽度
tf.adjustsFontSizeToFitHeight=YES/NO;//自适应高度
 
//设置UITextField是否拥有一键清除的功能
tf.clearsOnBeginEditing=YES/NO;
 
//设置一键清除按钮是否出现
tf.clearButtonMode=UITextFieldViewModeNever;
 
//设置UITextField的初始隐藏文字
tf.placeholder=@"输入密码";
 
//当UITextField的样式为UITextBorderStyleNone的时候,修改背景图片
tf.background=[UIImage imageNamed:@"xx.png"];
 
//设置UITextField的左边view
tf.leftView=xxx;
 
//设置UITextField的左边view出现模式
tf.leftViewMode=UITextFieldViewModeAlways;
 
//设置UITextField的右边view
tf.rightView=xxx;

//设置UITextField的右边view出现模式
tf.rightViewMode=UITextFieldViewModeAlways;
 
//设置UITextField的字的摆设方式
tf.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
 

4. 分析给出某个页面界面的实现方式?注意屏幕旋转等的处理。

这里解答一下屏幕旋转的问题吧!
如何获取:
1.注册UIDeviceOrientationDidChangeNotification通知

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientChange:)name:UIDeviceOrientationDidChangeNotification object:nil];

- (void)orientChange:(NSNotification *)noti
{
    
    NSDictionary* ntfDict = [noti userInfo];
    
    UIDeviceOrientation  orient = [UIDevice currentDevice].orientation;
    /*
     UIDeviceOrientationUnknown,
     UIDeviceOrientationPortrait,            // Device oriented vertically, home button on the bottom
     UIDeviceOrientationPortraitUpsideDown,  // Device oriented vertically, home button on the top
     UIDeviceOrientationLandscapeLeft,       // Device oriented horizontally, home button on the right
     UIDeviceOrientationLandscapeRight,      // Device oriented horizontally, home button on the left
     UIDeviceOrientationFaceUp,              // Device oriented flat, face up
     UIDeviceOrientationFaceDown             // Device oriented flat, face down   */
    
           switch (orient)
        {
            case UIDeviceOrientationPortrait:
                
                break;
            case UIDeviceOrientationLandscapeLeft:
    
                
                break;
            case UIDeviceOrientationPortraitUpsideDown:
 
          
                break;
            case UIDeviceOrientationLandscapeRight:
        
           
                break;
                
            default:
                break;
        }
}

2.注册UIApplicationDidChangeStatusBarOrientationNotification通知,以来stausBar

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:)name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];

- (void)statusBarOrientationChange:(NSNotification *)notification
{
    
    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
    if (orientation == UIInterfaceOrientationLandscapeRight) // home键靠右
    {
        //
    }
    
    if (
        orientation ==UIInterfaceOrientationLandscapeLeft) // home键靠左
    {
        //
    }
    
    if (orientation == UIInterfaceOrientationPortrait)
    {
        //
    }

    if (orientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        //
    }
}

5. 如何同时为iPad和iPhone做屏幕适配?

AutoLayout,sizeClass

开源框架:Masonry

6. 继承和协议、category是怎么回事?可以同其他语言做类比吗(比如Java或C++)?类似[a b]的消息调用,运行时是如何确定b的?

继承是继承的子类拥有父类的方法和属性

private:私有成员,不能被子类继承;

protected:保护成员,可以被子类继承;

public:公有成员,可以被外部函数访问,也可以被子类继承。

可以重写父类方法

协议是Delegate:只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明。例如一个view向另一个view传值。

Category是分类:是为了扩展已有类的新的行为。例如给NSString添加生成时间戳的方法。

7. 代码块(block)是怎么回事?代码块是对象吗?要如何理解呢?

8. 使用过NSThread吗?要如何使用?GCD是怎么回事?

NSThread和GCD都是多线程。

GCD 是一个替代诸如 NSThread 等技术的很高效和强大的技术,利用GCD可以实现多线程。

例如利用GCD多线程可以解决页面UI与网络下载的阻塞问题(UITableviewCell)。

9. 怎么编写库?进行组件/代码复用的库有何注意事项?如何使用C/C++开发的库?有何注意事项?

在分享一篇文章他们写的比我写的好。

10.Socket是否使用过?TCP和UDP区别是什么?单播、组播、广播分别是什么?

区别
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point to Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。
2.多播:“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。   IP网络的多播一般通过多播IP地址来实现。多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自动分配。
3.广播:“广播”在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽。拿开会打一个比方吧,在会场上只能有一个人发言,想象一下如果所有的人同时都用麦克风发言,那会场上就会乱成一锅粥。集线器由于其工作原理决定了不可能过滤广播风暴,一般的交换机也没有这一功能,不过现在有的网络交换机(如全向的QS系列交换机)也有过滤广播风暴功能了,路由器本身就有隔离广播风暴的作用。   广播风暴不能完全杜绝,但是只能在同一子网内传播,就好像喇叭的声音只能在同一会场内传播一样,因此在由几百台甚至上千台电脑构成的大中型局域网中,一般进行子网划分,就像将一个大厅用墙壁隔离成许多小厅一样,以达到隔离广播风暴的目的。   在IP网络中,广播地址用IP地址“255.255.255.255”来表示,这个IP地址代表同一子网内所有的IP地址。

11. http POST和GET的差异?http和https有何不同?

Get:相对不安全 , 参数在url后面,传输长度小

Post:相对安全,参数在请求体中,传输的长度相比较长

http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单。

HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

在ios9中,要求使用https协议。但也可以不适用。

12. 是否使用过自动化测试框架?介绍一下。

自动化测试框架

什么是证书,有哪些种类?如何做app签名?如何进行testflight发布测试?

证书是开发者购买的测试和发布应用程序的签名文件。
有个人开发者证书($99)和企业开发证书($299)
在苹果开发整中心生成相关p12文件进行测试和发布应用程序。

14. Svn里的conflict是怎么回事?如何处理?

多人协作时,修改同一句或一段代码,更新或提交时会造成冲突。可以对冲突进行合并。删除冲突,重新提交。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,053评论 6 174
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,592评论 2 57
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,947评论 1 13
  • 前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将《TCP/IP协...
    Noskthing阅读 3,084评论 5 57