- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 Introducing Swift - Extensions
Introducing Swift - Extensions扩展允许我们在没有源码的情况下对一个类或者类型进行行为和属性上的扩充或者更改,和OC不同的是,Swift中的扩展没有名字。能力范围添加计算型属性和计算静态属性定义实例方法和类型方法提供新的构造器定义下标定义和使用新的嵌套类型使一个已有类型符合某个接口扩展语法extension SomeClass { // add ne
2016-08-17 16:31:04
431
原创 Introducing Swift - Protocols
Introducing Swift - Protocols协议语法// 定义protocol SomeProtocol { // something ... }// 使用class SomeClass: SomeSuperClass, SomeProtocol { // protocol implementation ...}属性要求协议可以用于要求其遵循者必须具有某些属性,
2016-08-17 16:17:52
413
原创 Introducing Swift - Access Control
Introducing Swift - Access Control本文主要记录在学习Swift中【访问控制】时的笔记。模块和源文件Swift中访问控制基于模块,一个framework或者.swift文件都是一个模块,通过import关键字导入。访问级别分类public:最高级别,模块内部可以无限制访问任何方法和实体,外界也可以无限制访问该模块内部的方法和实体;internal:模块内部可以无限
2016-08-17 15:23:54
489
原创 UIViewContentMode
UIViewContentModeScaleToFill属性会导致图片变形。简单的填充满这个view。UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示
2016-05-04 11:35:13
492
原创 iOS面试前的一些准备(持续更新)
OC动态性:动态类型、动态绑定、动态加载内存管理原则:谁创建,谁释放;谁引用,谁管理生命属性时,如果使用new开头命名,需要自己定义get方法非ARC工程编译ARC工程参数:-fobjc-arc,反之:-fno-fobjc-arcMVVM架构:把原来Controller中的业务逻辑和页面逻辑剥离出来放到ViewModel层协议默认字段:@requiredcategory中的方法拥有更高的优先级,最
2016-05-02 16:20:47
567
原创 iOS-View视图的生命历程
-[ViewController initWithCoder:]或-[ViewController initWithNibName:Bundle]:首先从归档文件中加载UIViewController对象。即使是纯代码,也会把nil作为参数传给后者。 -[UIView awakeFromNib]:作为第一个方法的助手,方便处理一些额外的设置。 -[ViewController
2016-05-02 16:07:54
429
原创 关于离屏渲染的简单总结
最近关于离屏渲染问题的文章随处可见,对于一个小白来讲,可能去理解其中的原理是比较困难的。看了很多文章后,我也就是对离屏渲染有一点了解,在此做一个总结,直接说说我们平时应该怎样对待离屏渲染问题。观点基于个人理解水平,如有误区,我真诚地请大牛们指正。对于我们通常用到的圆角图片,比如UIImageView这种,使用系统圆角虽然会触发离屏渲染,但是单价相对来说,是可以接受的。如果我们希望在滚动
2016-04-28 22:19:07
5189
原创 UIView的clipsToBounds和CALayer的masksToBounds的区别
简单地说:clipsToBounds:是指视图上的子视图,如果超出父视图的部分就截取掉,masksToBounds:是指视图的图层上的子图层,如果超出父图层的部分就截取掉
2016-04-28 22:03:01
5560
原创 暑期实习笔试总结
截止今晚,参加了网易、360、腾讯、阿里、百度的在线笔试,虽然说只是为了去试试水,看看大公司的要求到底有多高,但是整体做下来确实发现自己还有很多不足。甚至比起身边的同学,都差很多。写下这篇总结的时候,我的内心是平静的,却也暗暗下定决心,秋招,要发力才行啊。 首先是笔试涉及到的知识面,基本涉及到了大学期间,学习的几门专业主修基础课程,数据结构,算法,数据库,操作系统,计算机网络,方方面面
2016-04-21 23:31:18
674
转载 【NSNotification、delegate和KVO的区别】
1.效率肯定是delegate比nsnotification高。2. delegate方法比notification更加直接,最典型的特征是,delegate方法往往需要关注返回值, 也就是delegate方法的结果。比如-windowShouldClose:,需要关心返回的是yes还是no。所以delegate方法往往包含 should这个很传神的词。也就是好比你做我的delegate,我会
2016-04-06 18:59:25
331
原创 Effective Objective-C学习笔记 (持续更新)
了解Objective-C语言的起源:OC中所有对象都要用指针引用,形如 NSString *str = @“a string object.”; 指针str本身在栈区,系统管理内存,但是@“a string object.”这个对象存储在堆区,需要手动管理内存,OC中有ARC技术。在类的头文件中尽量少引入其他头文件:如果可以,我们在头文件中使用类的“向前声明”,形如 @class SomeCl
2016-04-01 10:14:43
804
原创 三言两语frame&bounds
简单说明一下ios view的frame属性和bounds属性,直接看代码。- (void)viewDidLoad { [super viewDidLoad]; UIView *centerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; centerView.backg
2016-03-21 15:05:11
350
转载 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等宏变量:先举一个例子,会用到上面这些宏:[cpp] view plain copy#define myprintf(...) printk("[lch]:File:%s, Line:%d, Function:%s," \
2016-03-14 22:46:56
379
原创 ACDFTPManager —— mac & iOS上的FTP库
ACDFTPManagerAs nkreipke said, when I was developing a involves the FTP service APP, spent a great effort but could not find can well meet therequirements of library, so want to be able to develop a
2016-03-14 01:15:19
1263
原创 我的Xcode插件列表
Alcatraz ----Xcode插件管理工具AdjustFontSize ----command+/- 快捷调节字体大小AMMethod2Implement ----control+A快捷实现头文件中的方法Auto-Import ----快捷导入头文件,无须返回文件开头的位置AutoHighlightSymbol ---- 高亮显示被选中的变量Backlig
2016-03-13 21:50:04
405
原创 iOS中nil和release的区别
首先解释一下nil和release的原理:nil:把指针置为nil,就是把这个指针的存储值置为空,此时我们切断了指针与内存中对象的联系,但是系统并不会回收对象占用的内存release:通知内存释放这个对象如果没有release就直接nil,那么虽然不会出错,却等于自己制造内存泄漏了,因为nil之后release就已经不起作用了。相反,如果在使用接口对象时只仅仅release
2016-03-11 10:53:49
507
原创 iOS 单例的写法
关于什么是单例,iOS中的单例模式是什么,自行爬页搜索。这里抛砖引玉,说说单例模式应该怎样实现。直接上代码。//// Singleton.h// SingletonDemo//// Created by WangBo on 3/9/16.// Copyright © 2016 WangBo. All rights reserved.//#import @in
2016-03-09 19:43:37
505
原创 CentOs6.5中安装和配置vsftp
一、vsftp安装复制代码代码如下:# 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd on二、vsftp相关命令之服务复制代码代码如下:# 启动ftp服务service vsftpd start# 查看ftp服
2016-03-09 18:03:11
405
原创 iOS内存优化-初级初级初级初级技巧
开始学习iOS内存优化,从最开始的学起,记录一些平时大家都可能会用到的技巧。如题,初级初级初级初级~1.在UITableView中,我们的Cell可能会有一些前置显示的图标,可能有很多个类型的图标,我们应该维护一个图标的array,而不是每次加载cell的时候通过UIImage去生成一个图标。
2016-03-09 10:55:12
406
原创 genstrings iOS国际化语言支持
iOS国际化的知识。首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizable.strings对key指定不同的值,系统会根据当前系统语言,去不同的lproj找不同的字符串。用个图显示吧:我们应用只支持中文,英文,所以只建了zh-Hans.lproj和en.lproj,然后在Localizable.str
2016-03-08 22:13:15
390
转载 iOS开发系列--并行开发详解
概览大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步操作只能一步步按顺序逐个执行。改变这种状况可以从两个角度出发:对于单核处理器,可以将多个步骤放到不同的线程,这样一来用户完成UI操作后其他后续任务在其他线程中,当CPU空闲时会继续执行,而此时对于
2016-03-06 14:23:56
462
原创 performSelectorOnMainThread:withObject: waitUntilDone 参数解释
performSelectorOnMainThread: withObject: waitUntilDone: 前两个参数不解释,最后一个waitUntilDone我看网上很多朋友都在问,解释一下。在子线程里有如下代码:NSLog(@"before");[self performSelectorOnMainThread:@selector(callBack:) wit
2016-03-05 17:45:31
2163
转载 理解OAuth 2.0
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用
2016-03-05 16:12:04
285
原创 3分钟开始用JSON
SON 数据格式解析和 XML一样,JSON也是基于纯文本的数据格式。由于 JSON天生是为 JavaScript准备的,因此,JSON的数据格式非常简单,您可以用 JSON传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。String,Number和 Boolean用 JSON
2016-03-05 16:08:11
345
原创 objective-c中对类别category的理解
1.利用category,我们可以向现有的类加入新的方法,但是不能新加实例变量。相当于C++中的继承,但是不同的是,我们即使没有原有类的源代码和实现细节,依旧可以利用category来新增一些方法。2.利用category,我们可以将一个类的实现,拆分到多个.m文件中,更加合理的管理代码结构。3.通过建立一个NSObject的类别,也就是分正式协议,我们可以让一个对象作为其他某一个对象的委
2016-03-02 21:27:47
324
原创 非ARC模式下内存管理总结
如果我们不适用ARC来自动管理内存,那么则应该记住以下准则:1.对于临时对象:a.通过alloc/new/copy获得的对象,应该在不再使用时释放该对象(release);b.通过其他任何方法获得的对象,我们假设该对象的retainCount为1,且被设置为自动释放对象,因此我们不需要做任何事情;2.对于你打算长期拥有的对象,例如你希望其他的实例对象可以访问这个对象:a.通过a
2016-03-02 11:22:16
574
转载 iOS开发系列--IOS程序开发概览
概览终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言、ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序。但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的
2016-03-01 10:51:57
436
转载 iOS开发系列—Objective-C之Foundation框架
概述我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有:Foundation概述常用结构体日期
2016-02-28 09:33:34
392
转载 iOS开发系列--Objective-C之KVC、KVO
概述由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性:键值编码KVC键值监听KVO键值编码KVC我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对象。其实
2016-02-27 12:18:27
347
转载 property参数strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章。现在我们看看iOS5中新的关键字strong, weak, unsafe_unretained. 可以与以前的关键字对应学习strong与r
2016-02-27 11:55:05
375
转载 iOS开发系列—Objective-C之内存管理
概述我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上)。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#、Java都是通过垃圾回收来(GC)解决这个问题的,但在OjbC中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人员手动维护。今天将着重
2016-02-27 11:45:12
340
转载 iOS开发系列--Objective-C之协议、代码块、分类
概述ObjC的语法主要基于smalltalk进行设计的,除了提供常规的面向对象特性外,还增加了很多其他特性,这一节将重点介绍ObjC中一些常用的语法特性。当然这些内容虽然和其他高级语言命名不一样,但是我们都可以在其中找到他们的影子,在文章中我也会对比其他语言进行介绍,这一节的重点内容如下:协议protocol代码块block分类category协议protocol在ObjC
2016-02-27 00:06:51
290
转载 iOS开发系列--Objective-C之类和对象
概述前面已经简单介绍过ObjC的基础知识,让大家对ObjC有个大致的印象,今天将重点解释ObjC面向对象的特性。ObjC相对于C语言多了面向对象特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简。当然这并不代表今天的内容就会少,今天的内容还是相当多的:类定义成员变量方法和属性self关键字构造方法description方法继承类定义在C
2016-02-26 23:49:24
315
转载 iOS开发系列--C语言之指针
概览指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移越来越模糊,感觉指针难以掌握,本文通过简单的例子试图将指针解释清楚,今天的重点有几个方面:什么是指针数组和指针函数指针什么是指针存放变量地址的变量我们称之为“指针变量”,简单的说变量p中存储的是变量a的地址,那么p就可以称为是指针变量,或者说p指向a。当我们访问a变量的时候其实是程
2016-02-26 23:26:45
308
转载 iOS开发系列--C语言之预处理
概述大家都知道一个C程序的运行包括编译和链接两个阶段,其实在编译之前预处理器首先要进行预处理操作,将处理完产生的一个新的源文件进行编译。由于预处理指令是在编译之前就进行了,因此很多时候它要比在程序运行时进行操作效率高。在C语言中包括三类预处理指令,今天将一一介绍:宏定义条件编译文件包含宏定义对于程序中经常用到的一些常量或者简短的函数我们通常使用宏定义来处理,这样做的好处是对
2016-02-26 23:15:19
342
转载 iOS开发系列--C语言之存储方式和作用域
概述基本上每种语言都要讨论这个话题,C语言也不例外,因为只有你完全了解每个变量或函数存储方式、作用范围和销毁时间才可能正确的使用这门语言。今天将着重介绍C语言中变量作用范围、存储方式、生命周期、作用域和可访问性。变量作用范围存储方式可访问性变量作用范围在C语言中变量从作用范围包括全局变量和局部变量。全局变量在定义之后所有的函数中均可以使用,只要前面的代码修改了,那么后面的代
2016-02-26 23:08:33
355
原创 在 Xcode 7.x 中安装 Alcatraz
安装Xcode7.2后,继续采用官方方法安装Alcatraz,发现不成功。看了一下Alcatraz的issues,找到了解决方法,同时一定程度解决了Github访问的问题。第一步:关闭 Xcode。第二步:如果你之前安装过Alcatraz,卸载它。另外,不管你有没有安装或者是否成功,都执行一次吧,不会有影响,运行命令: rm -rf ~/Library/Application\
2016-01-17 00:14:05
342
原创 MacBook下疑难杂症诊断攻略
这两天MacBook Pro一直很扯蛋,开机2分钟,风扇就开始狂转,声音吓人,但是电脑表面温度却相对较低,难道小白发情了?大冬天的。。。另外还伴随着一些奇怪的现象,有时候鼠标追随速度突然变成初始值,很慢很慢,而且网络连接也会断开。。。反正就是各种毛病,第一次遇到这种情况,客服直接让我重装了系统,如今回想,很痛苦,在线恢复了三十多个小时才搞定。。。今天闲着,就折腾了一下。说说思路,面对小白,大神
2016-01-02 22:31:15
1646
转载 iOS开发系列--Objective-C之KVC、KVO
概述由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性:键值编码KVC键值监听KVO键值编码KVC我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对
2015-12-24 17:17:57
361
原创 Macbook Pro Safari必须强制退出的问题
因为之前两次碰到这个问题,所以记录下来。问题主要表现为:打开系统Safari后,通过command+Q,或者菜单中的退出选项退出Safari时,软件会进入无响应状态,必须通过强制关闭来结束程序。与此同时,在运行Safari很短时间后,会发现内存被大量占用,仅仅Safari就占用十多个G的内存,导致系统运行非常卡顿。解决办法:今天无意中搞定的,应该还是配置信息有问题吧。利用第三发软件Clea
2015-12-22 22:01:34
6024
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人