自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS底层原理探索—KVO的本质

探索底层原理,积累从点滴做起。大家好,我是Mars。往期回顾iOS底层原理探索—OC对象的本质iOS底层原理探索—class的本质今天带领大家探索iOS之KVO的本质。KVOKVO全称Key-Value Observing,键值监听。KVO是OC对观察者设计模式的一种实现,注册一个观察者时,调用addObserver: forKeyPath:options: context:,观察者...

2019-04-22 20:37:52 285

原创 iOS底层原理探索—class的本质

探索底层原理,积累从点滴做起。大家好,我是Mars。上文iOS底层原理探索—OC对象的本质中总结了OC对象的底层原理,在结尾补充中简单展示了class底层结构体的内容,今天让我们继续探索class的本质。在OC中,类对象(class对象)和元类对象(meta-class对象)的本质结构都是struct objc_class指针,即在内存中就是结构体Class clas = [NSObject ...

2019-04-19 23:12:55 418

原创 iOS底层原理探索—OC对象的本质

在探索OC对象的本质之前,我们要明白Objective-C的代码,底层的实现都是C/C++代码。而OC中的对象、类则是基于C/C++的结构体来实现的。我们可以通过将创建好的OC文件,转化成C++文件来看一下OC对象的底层结构。OC代码转换成C++通过命令行将OC的main.m文件转换成C++,生成 main.cpp。 clang -rewrite-objc main.m -o ma...

2019-04-18 16:38:55 915

原创 超详细手把手教你App上线AppStore

作为一个iOSer上线流程是不可或缺的技能,今天就带领大家重温上线流程。一、准备工作已付费的开发者账号开发者账号分为以下四种类型:个人(Individual),资费$99/年;公司(Company),$99/年;企业(Enterprise),$299/年;高校(University),免费。一个已经开发完成的项目,且无明显BUG或崩溃错误。正式版的Xcode,并且是最新版本。注意:上...

2018-12-17 10:50:54 7092

原创 Charles模拟弱网环境 修改请求返回值 一分钟搞定网络抓包

之前写过一篇文章介绍过利用Charles进行网络抓包以及抓取手机App网络请求,此处不再阐述,贴上传送门一分钟搞定Charles手机APP抓包今天重点介绍如何利用Charles进行模拟弱网环境以及修改请求返回值。模拟弱网环境模拟弱网环境简单粗暴,只需两步即可,直接上图。选择 Proxy→ Throttle Setting→勾选上 Enable Throttling→ 选择Throttle...

2018-12-04 14:27:56 2333 1

原创 解读SDWebImage图片缓存

SDWebImage是一个功能强大的图片缓存框架,可以实现网络图片加载和缓存。那么SDWebImage的缓存机制是如何实现的呢?缓存时间是多久?清除缓存的策略是怎样的?让我们带着这些问题,走进源码,解读SDWebImage。SDWebImage提供一个UIImageView的分类 UIImageView+WebCache,用来加载和缓存来通关HTTP传输的图片资源。提供了缓存管理、异步下载、缓...

2018-11-30 17:02:54 2260

原创 iOS调试工具—Instruments

Instruments作为Xcode内置工具,是官方提供的一个非常强大的性能调试工具。我们可以用它来收集关于一个或者多个系统进程的性能和行为的数据,并跟随时间产生数据。通过Instruments我们可以完成定位内存问题、检测I/O活动、检测图像性能、检测CPU使用状况、自动化测试等工作。启动InstrumentsInstrument的打开方式有很多种,下面为大家介绍便捷的四种启动方式。1....

2018-11-22 16:34:28 3755

原创 iOS开发之HTTP与HTTPS网络请求

HTTP是互联网中应用最为广泛的一种网络协议,在进入正文之前,先解释什么是网络协议?网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议是由以下三个要素组成:语义、语法、时序。(1) 语义 语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。(2) 语法 语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。(3)...

2018-11-14 09:39:07 514

原创 iOS iPhone X位置权限

在IOS11,原有的NSLocationAlwaysUsageDeion被降级为NSLocationWhenInUseUsageDeion。因此,在原来项目中使用requestAlwaysAuthorization获取定位权限,而未在plist文件中配置NSLocationAlwaysAndWhenInUseUsageDeion,系统框不会弹出。建议新旧key值都在plist里配置,反正我试下来是...

2018-05-31 09:41:58 2309

原创 iOS面试之——内存管理

内存管理1.什么是ARC?ARC是automatic reference counting自动引用计数,在程序编译时自动加入retain/release。在对象被创建时retain count+1,在对象被release时count-1,当count=0时,销毁对象。程序中加入autoreleasepool对象会由系统自动加上autorelease方法,如果该对象引用计数为0,则销毁。那么...

2018-05-28 11:51:26 524

原创 ios 面试题之—block

对block的综合理解block的实质对象, 一个函数指针, 指向代码块, 以及上下文所需的变量 函数指针和block的格式对比函数指针 void(*fun)(int) block void(^fun)(int) block在内存中的分类全局block –> GlobalBlock <==> 相当于全局变量, 系统会自动释放 栈block –> St...

2018-05-28 11:49:19 1112

原创 iOS中求数组元素中最大数、最小数以及求和、求平均值

直接上货 NSArray *testArray = [NSArray arrayWithObjects:@”2.0”, @”2.3”, @”3.0”, @”4.0”, nil]; NSNumber *sum = [testArray valueForKeyPath:@”@sum.floatValue”]; NSNumber *avg = [testArray...

2018-05-28 11:41:06 1428

原创 iOS跳槽宝典-面试技术基础篇

2.讲一下MVC和MVVM,MVP关于项目架构方面的面试题几乎在每次面试中都会提到,架构方式有很多种,从最开始的MVC模式,演化到MVP,然后到现在的MVVM模式,在不断的演化过程中核心思想归根结底还是降低各组件之间的耦合度,使得数据的流向更加清晰明了。演化的过程并不意味着新的模式比以前的模式更加高级,只是对于项目的不同场景有了更多的选择方案。下面就针对这三种比较常用的设计模式进行简单的分析和...

2018-03-29 12:37:23 328

原创 iOS跳槽宝典-面试技术基础篇

序言又是一年金三银四时,相信很多人会选择这个时机考虑跳槽,但又对轮轮面试望而生畏。其实面试只是对个人技术及应变能力的一次考验,通常面试第一轮为技术面试,二面一般是跟HR交流,进一步了解你(严格的大公司还会有三面、四面)。第一轮技术面试中遇到的问题通常都是一些基础性的知识,平时可能忙于夜以继日的工作而疏于整理和总结,匆忙去面试可能被面试官层层紧逼的提问问的晕头转向,或者笔试题答的一塌糊涂。技术过...

2018-03-22 17:06:02 444

原创 适配iOS 11和iPhone X——导航栏、UITableView

每年的WWDC大会都激动和紧张好一段时间。激动的是期待苹果的新产品带来的那些黑科技,尤其今年的iPhone10周年纪念款iPhone X。紧张的当然是iOS、Swift和Xcode的升级,又要加班了(ㄒoㄒ)。在这里跟大家分享一下适配iOS 11和iPhone X的过程中,遇到了一些坑。一、导航栏在解释导航栏变化之前先解释一个iOS 11的新特性:设置大标题,通过BOOL类型的prefersLarg

2017-12-20 09:57:20 13863

原创 iOS UIFont中文字体 -- 中文字体包快速查找

最近我司的产品经理要求新版本的APP中的字体格式要新颖,区别于大众APP的字体。需求大过天,开始着手UIFont类设置字体。最终设置来设置去,还是无法和UI达成一致。 在网上查询设置中文字体,像仿宋,华文新魏等字体的方法,方法如出一辙,导入中文字体包,通过设置UILabel的font属性,来设置字体:label.font = [UIFont fontWithName:@"Arial-BoldIta

2016-05-26 16:29:30 5821 1

原创 http网络协议与Socket

一、网络各个协议:TCP/IP、SOCKET、HTTP等网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象; 传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。 http协议 对应于应用层 tcp协议 对应于传输层 ip协议 对应于网络层

2016-03-30 21:37:33 453

原创 Github 创建仓库、上传本地项目图文教程

话不多说,直接切入主题:一、注册Github账号首先需要注册一个Github账号,注册地址:https://github.com 点击注册按钮后会跳转到 这是一些Github关于你的调查问卷,不想填直接选择skip this step 跳过 进入这个界面 选择继续后你的邮箱会收到一封github发的邮件,进入邮箱验证。完成Github的注册。二、创建个人的Github仓库邮箱验证

2016-03-22 15:39:48 723

原创 iOS开发实用工具——CornerStone配置SVN

CornerStone作为一款适用于Mac操作系统的软件,Subversion 客户端管理工具。个人感觉用CornerStone配置svn相比XCode的svn容易上手的多。CornerStone配置虽不难,但也有几个需要注意的地方,在此整理分享给大家,希望能提供些许帮助,当然更希望大家能多提意见 声明:本文提供的破解版来自网络,仅供开发者学习交流使用,不可用作商业用途!!!**本文讲

2016-03-17 12:19:09 973

原创 iOS面试题<一>

1、        如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)总体上说:  使用dispatch group,然后 wait forever 等待完成, 或者采取 group notify 来通知回调。  细节: 1. 创建异步队列 2. 创建dispatch_group dispatch_group_t = dispat

2015-10-23 12:05:54 462

iOS 11.4(15F79)

真机测试无需更新xcode,iOS 11.4(15F79)真机包,完美运行!直接下载后再前往 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 然后运行,OK

2018-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除