iOS 模块分解—「Runtime面试、工作」看我就

引导 相信对于从事开发人员来说 runtime 这个名称都不陌生,就像我起初只知道「 runtime 叫运行时 」,后来知道 runtime 同样可以像 KVC 一样访问私有成员变量,还有「 给类动态添加属性:LNTextField.placeholderColor || 交换方法:imageNam ... »

iOS 类似微博或朋友圈的信息流

1.先上图: image.png image.png image.png image.png 因为做过了好几次这样的需求,所以这次想到把它拿出来,下次再需要做的时候直接拿过来改改就能用了,节约时间。 2.功能 文字收起和展开,行高自适应; 图片九宫格,支持图片预览和视频播放 还想要什么功能就自己去搞 ... »

二、多功能提示框——MBProgressHUD

概述 (注:图片仅展示部分功能,图片来自github) MBProgressHUD是一个Objective-C开源库,它可以让你在UI界面界面上插入一个透明的方框,伴以文字或进图条等,从而提示一些后台信息。 安装 一如既往,首先创建一个工程,此处命名为Charpter2MBProgressHUD。 ... »

iOS swift项目IM实现,从长连接到数据流解析分析之Socket

iOS swift项目IM实现,从长连接到底层数据解析分析之Socket 一:项目简介: 去年开始接手了一个国企移动项目,项目的需求是实现IM即时通讯功能。 * 一期版本功能包括了: 1.公司业务的审批,报价和授标审批流程; 2.单人的聊天和群组聊天(领导日常工作交流); 3.聊天消息包括支持文字类 ... »

在Swift中使用AutoLayout(AutoLayout笔记)

1.背景 iOS开发这几年, UI布局工具从frame到Masonry到SnapKit, sb和xib的AutoLayout也用过, 但是代码版本的AutoLayout倒是没用过, 最近一年, 频频发现一些三方UI组件布局的bug, 作为三方组件不可能去依赖另一个三方的kayout仓库, 所以只能通 ... »

iOS视频倒放

iOS视频倒放 视频的倒放就是视频从后往前播放,这个只适应于视频图像,对声音来说倒放只是噪音,没什么意义,所以倒放的时候声音都是去除的。 倒放实现 一般对H264编码的视频进行解码,都是从头至尾进行的,因为视频存在I帧、P帧、B帧,解码P帧的时候需要依赖前面最近的I帧或者前一个P帧,解码B帧的时候, ... »

iOS开发中方法延迟执行的几种方式

概述 项目开发中经常会用到方法的延时调用,下面列举常用的几种实现方式: 1.performSelector 2.NSTimer 3.NSThread线程的sleep 4.GCD 1.performSelector 此方法是一种非阻塞的执行方式。 取消方法: 2.NSTimer定时器 此方法是一种非阻 ... »

Windows Unity ARKit发布到IOS相关设置及错误解决

Windows 版Unity安装: 考虑到在虚拟机中运行Unity比较卡,所以采用在Windows Unity上将项目发布好然后再复制到Mac虚拟机中通过XCode进行编译的方式。 Unity版本为 Unity2017.2.0f3 。注意当安装作为ARKit开发环境时,需要注意未标注资源包不能 安装 ... »

【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API

最近在协助调研 Apollo 生成的代码是否有可能跨 Query 共享模型的问题,虽然初步结论是不能,并不是预期的结果,但是在调研过程中积累的一些经验,有必要记录下。如果你也对 Graphql 感兴趣,不妨先从 Github 的 Graphql API 来切手实践。 ... »

iOS开发丨大牛推荐的5个必备编程工具

iOS开发的工具可谓多如牛毛,选择一款好的工具不仅能够很省事,更能避免很多不必要的错误,这里小编就给大家分享几个很好用的编程类工具。 1. CodeRunner CodeRunner是一款轻量级,可以编写和运行多种语言的编辑器,它不需要安装额外的语言环境就可以执行多种语言代码。如果开发者想要测试一段 ... »

iOS universallinks唤醒app

从iOS9之后,苹果就推出了这个功能,用来唤醒外部app。这个功能在那些电商app上使用尤其广泛,当你打开对应的h5网页后,上面跳出一个是否跳转app的按钮。 现在iOS11已经基本覆盖,iOS12也马上就要发布了,这算是一个很成熟的服务了,所以对接一下,也十分必要。 在这个功能推出之前,iOS这边 ... »

【iOS】自定义表情的实现

现在很多App都有自己的自定义的表情,客户端可能要实现自己定表情的选择、发送和显示,这里我介绍一种简单的自定义表情的实现思路和代码。 以下介绍基本可以实现聊天中对自定义表情的需求,可结合下图来理解: 资源准备: 自定义表情图片的命名。 每个自定义表情的意思。 emtionMeans.plist:ke ... »

iOS 开发人才市场饱和了吗?为什么我会继续选择深入学习iOS开发?

前言: 说饱和是饱和的;说不饱和也是不饱和的。 一),几年间移动互联网的飞速发展以及互联网创业的大潮来袭,使得 iOS 开发一职位炙手可热。由于前几年 iOS 开发的稀缺以及自学门槛相对其他技术高(需要 Mac 和 iPhone),加之创业公司大都以移动端产品作为入口,iOS 开发的薪资也水涨船高。 ... »

【iOS】UIViewController的生命周期

(void)loadView; loadView方法在UIVIewController的view被访问且为空的时候调用。 loadView方法不应该直接被调用,而是由系统调用。它会加载或创建一个View并把它赋值给UIViewController的view属性。 以下代码会导致死循环: (void) ... »

你是下一个被淘汰的iOS程序员吗?

前言: 负责招聘iOS、Android的朋友们可能会发现,收到的大部份简历的相似度是极其的高,这些简历里,他们可能都做过一个团购APP,一个美食APP,或者一个仿今日头条的APP,另外他们的技能点长得都惊人的一致。 通常一轮面试下来后,面试的同事跟我说,候选人有些实际工作经验,能胜任日常的工作,而大 ... »

【iOS】浅拷贝和深拷贝

浅拷贝和深拷贝 浅拷贝即指针拷贝,可以认为是给一只狗加了一条绳子;深拷贝不但拷贝了对象的指针,还在系统中在分配了一块内存用来存放拷贝对象的内容,可以认为是产生了一条带绳子的新狗。即浅拷贝是两根绳子一条狗,深拷贝是两根绳子两条狗且每只狗对应各自的绳子。 图示: 深浅拷贝取决于拷贝后的对象是不是和被拷贝 ... »

【iOS】定义@property时常用的修饰词介绍

iOS编程中,定义成员变量常用格式如下: 常用的修饰词有atomic,nonatomic,copy,assign,strong,weak,readonly,readwrite等。面试中也会常常被问到这些修饰词的含义及其之间的区别,其本质就是iOS的内存管理,下面会详细介绍每个词的特性和它们的区别,还 ... »

【iOS】用strong和weak来修饰成员变量的对比

对于纯代码布局,用@property声明成员变量时,我是很自然的用strong来修饰的。然后突然有人问我用weak来修饰可不可以,我第一反应是不可以,因为用weak来修饰,初始化过后就会被释放掉,就算我第一句写了初始化的方法,立即执行addSubView也是没办法将其添加上去的。xcode也给出了很 ... »

利用Runtime实现简单的字典转模型

前言 我们都知道,开发中会有这么一个过程,就是将服务器返回的数据转换成我们自己定义的模型对象。当然服务器返回的数据结构有 类型的,也有 类型的。本文只讨论 格式的。 大家在项目中一般是怎么样将服务器返回的 转化成自己定义的模型类呢? 我在项目中一般都是使用的 "MJExtension" 。 本文讲解 ... »