热门 最新 精选 话题 上榜
原文地址 ,此简书只做备份,强烈推荐原文,毕竟格式比简书好看,还清晰起因去年,链家网iOS端,之前由于所有的业务端代码都是混乱管理,造成开发有很多痛点无法单测 团队成员提交代码冲突机率大 CI配合效果差 功能性代码多端无法复用 单仓库代码量大 编译时间长 等等痛点,领导和组内多次沟通开始着手组件化开发,希望能改进这些开发中的痛点,成立组件化团队。组件化的方案大同小异,基础性代码封装私有库,业务组件交互交由中间件负责,项目依赖工具用 iOS项目事实上的标准 CocoaPods前期的基础性组件拆分
转载 2021-06-04 21:57:54
2329阅读
原文地址写在之前之前工作中对Mach-O文件有一定的接触, 原本早就想写一篇文章分享一下,但是奈何只是不够深入, 总怕分析的有问题误导读者。最近又在阅读深入解析Mac OS X 与iOS 操作系统,借着这个机会记录下自己的学习成果, 并结合之前的经验, 加上一些实例让读者更好的理解。毕竟对于程序员来说 大部分人对抽象的概念的感觉就是 听说过很多原理, 依然不知道大佬说的是什么Mac OS 与 iOS 支持的文件类型在Unix-Like系列的操作系统, 可以通过命令 chmod +x 给
转载 2021-06-04 21:57:52
1012阅读
前言:MachOView下载地址:http://sourceforge.net/projects/machoview/MachOView源码地址:https://github.com/gdbinit/MachOViewMach-O格式全称为Mach Object文件格式的缩写,是mac上可执行文件的格式,类似于windows上的PE格式 (Portable Executable ), linux上的elf格式 (Executable and Linking Format)。mach-o文件类
转载 2021-06-04 21:57:51
1957阅读
关联对象 AssociatedObject 完全解析 关联 category与associative作为objective-c的扩展机制的两个特性 ✓ category即类型,可以通过它来扩展方法 ✓ associative,可以通过它来扩展属性 ✓ 在iOS开发中,可能category比较常见,相对的associative,就用的比较少,要用它必须使用的头文件,然后就可以自由使用objc_getAssociatedObject以及objc_setAssociatedObject
原创 2021-06-04 21:56:00
384阅读
-(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例 -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例 -(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递) +(BOOL) instancesRespondToSelector: selector 用来判断实例是否有以某个名字命名的方法. 和上面一个不同之处在于,
原创 2021-06-04 21:55:59
439阅读
Objective-C在编译的时候,会根据方法的名字(包括参数序列),生成一个用 来区分这个方法的唯一的一个ID,这个ID就是SEL类型的。我们需要注意的是,只要方法的名字(包括参数序列)相同,那么它们的ID都是相同的。就是 说,不管是超类还是子类,不管是有没有超类和子类的关系,只要名字相同那么ID就是一样的。我们可以方便的通过方法的名字,获取到方法的ID也就是我们所说的SEL,反之亦然。具体的使用方法如下:1     SEL 变量名 = @selector(方法名字);2     SEL..
原创 2021-06-04 21:55:58
286阅读
一、Protocol Buffer 与 XML、JSON 的区别Protocol Buffer和XML、JSON一样都是结构数据序列化的工具,但它们的数据格式有比较大的区别: 首先,Protocol Buffer 序列化之后得到的数据不是可读的字符串,而是二进制流 其次,XML 和 JSON 格式的数据信息都包含在了序列化之后的数据中,不需要任何其它信息就能还原序列化之后的数据;但使用 Protocol Buffer 需要事先定义数据的格式(.proto 协议文件),还原一个序列化之后的数..
原创 2021-06-04 21:53:07
380阅读
前言最近一直在做原型图,中间有两天没有写简书了。感觉心里面特别不是滋味。所以今天好不容易忙中偷闲,所以今天必须写几篇简书,安慰一下自己的内心。于是今天给大家分享一下KVC和KVO的简单用法,随后会更加深层次的去写一系列的简书,去深层次的讲解KVC和KVO。KVC用法KVC也就是key-value-coding(键值编码),简而言之就是通过key值去进行赋值和取值。主要是是操作对象的属性。以下是几个常用的方法:setValue:forKey:(为对象的属性赋值) setValue: forK
转载 2021-06-04 21:47:54
209阅读
很多关于runtime的博客文章都是开篇介绍runtime原理、消息传递机制等等,让好多的同学望而生畏。对于runtime这个强大的略带神秘色彩的独特处理机制,我们需要循序渐进。刚开始接触runtime,先让我们揭开它的神秘面纱,不去想原理,不要想太多,只是简单的认识一下。runtime(运行时机制)是什么runtime是属于OC的底层,是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API,可以进行一些非常底层的操作(用OC是无法现实的, 不好实现)。 在我们平时编
原创 2021-06-04 21:41:54
360阅读
Runtime又叫运行时,是一套底层C语言的API,其为iOS内部的核心之一,我们平时编写的OC代码底层都是基于它来实现的。Objective-C 是一门动态语言,它会将一些工作放在代码运行时才处理而并非编译时。也就是说,有很多类和成员变量在我们编译的时是不知道的,而在运行时,我们所编写的代码会转换成完整的确定的代码运行。因此,编译器是不够的,我们还需要一个运行时系统(Runtime system)来处理编译后的代码。Runtime 基本是用 C 和汇编写的。Runtime是什么?运行时(Run
原创 2021-06-04 21:41:53
2309阅读
LaunchScreen作为启动图设置,修改无效的解决方案原有的推流APP用launchScreen做的启动图,现在要修改一张,发现修改无效。当前测试的方法有1,重启Xcode 卸载app 清楚xcode缓存2,修改launchScreen.storyboard上imageView中的图片3, 修改图片名效果:已删除原启动图,现启动图变为白板,新的启动图无法展示https://www.jianshu.com/p/fb70d15b50d8参考以上文章,重启手机后就好了,可能原因为app在第
原创 2021-06-04 21:40:24
1047阅读
首先说明下,在Xcode6之前运用objc_msgSend,是有参数提示的。但是从Xcode6之后,苹果不推荐我们使用runtime,所以就取消了参数提示功能。估计是不想让我们过多的了解底层。Xcode6之后我们运用objc_msgSend函数是这样的:从图中很明显可以看出来是没有参数提示的。我们可以通过对Xcode进行配置进行更改。更改如图:按照如上图的方式操作,搜索msg,并把YES改成NO即可。操作完成后再敲原来的函数就有参数提示功能了。...
原创 2021-06-04 21:40:23
615阅读
一、runtime的简介:runtime简称运行时。Object-C就是运行时机制也就是运行时候的一些机制。其中最主要的就是消息机制。1>和C语言的区别C语言:函数的调用在编译的时候就决定了调用那个函数。OC语言:它的调用是个动态调用过程,也就是说在编译阶段并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。所以综合如下:1.在编译阶段,C语言在调用未实现的函数就会报错。2.在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声
原创 2021-06-04 21:40:22
455阅读
启动BIOS虚拟化
原创 2021-06-04 17:44:16
173阅读
1. 问题 问题出在微信端,而且是苹果机的微信端(苹果你咋这么矫情,安卓正常).;代码还是之前的代码,貌似是苹果升级系统后部分版本出现的 BUG,后来证明确实跟 ios 版本有关,网上也找过类似的解决措施; 2. 解决方法 2.1 添加 async: false(未验证) 2.2 ajaxFileU
原创 2021-06-04 17:44:15
454阅读
题意 "题目链接" 给出两个序列$a, b$,求出一个序列$t$,满足 $$a_i = t_i | t_{i + 1}$$ $$b_i = t_i \& t_{i + 1}$$ 同时,$0 \leqslant a_i, b_i, t_i \leqslant 3$ Sol 打比赛的时候想到了拆位,从此
原创 2021-06-04 17:44:14
83阅读
Swift学习 202005月份1.基础教程:https://swiftgg.gitbook.io/swift/swift-jiao-cheng2.Swift 5.1 极简参考手册learning…
原创 2021-06-04 17:42:26
244阅读
SwiftSwift是苹果公司在WWDC2014上发布的全新开发语言,用于搭建基于苹果平台的应用程序。其语法内容混合了OC、JS、Python,语法简单,使用方便,并可与OC混合使用。https://www.hangge.com/blog/cache/category_72_42.html代码仓库地址2020年06月01日18.Swift - 文件,文件夹操作大全17.Swift - 协议(protocol)16.Swift - 类扩展(extension)15.Swift - 访问
原创 2021-06-04 17:42:25
377阅读
在开发中经常有些需求,凭借着苹果提供的API不好实现,或者实现起来比较麻烦。此时,我们就可以运用runtime来获取类的内部成员变量,然后运用KVC进行替换,来达到目的。下面就贴出运用runtime来获取内部成员变量的方法,以获取UITextView类为例:1>运用Object-C代码实现:unsigned int count = 0; Ivar *vars = class_copyIvarList([UITextView class], &count); .
原创 2021-06-04 17:42:24
1418阅读
一 文件管理 沙盒:让每个APP应用在手机上有一个独立的文件夹,相互之间不能访问。 沙盒目录:NSHomeDirectory() library: 库文件 tmp: 临时文件 1.NSData 也是一个容器 2. NSFilemanager:用于文件或目录的操作(创建,赋值,剪切,删除,获取属性,获
原创 2021-06-04 17:33:31
167阅读
一 简绍 protocol,简单来说就是一系列不属于任何类的方法列表,其中声明的方法可以被任何类实现。这种模式一般称为代理(delegation)模式。通过Protocol定义各种行为,在不同的场景采用不同的实现方式。在iOS和OS X开发中,Apple采用了大量的代理模式来实现MVC中View和C
原创 2021-06-04 17:33:30
371阅读
在项目配置中选择 Build Triggers 下勾选 Build periodically,可以对项目进行定时构建设置。构建设置详细可通过右边的问号符号进行查看。 定时构建字段遵循 cron 的语法(但是与cron又略有不同),该字段每行包含5个字段,5个字段之间使用 TAB 或空格进行分隔。 例
原创 2021-06-04 17:03:06
1130阅读
1、进入插件管理 搜索 Locale 插件并进行安装 2、插件安装成功后进入系统设置 3、在 Locale 中 Default Language 字段填入 zh_CN 并且勾选 Ignore browser preference and force this language to all user
原创 2021-06-04 17:03:05
3446阅读
一 React Native React Native 是由Facebook发布的开源框架,着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台。(Learn once, write anywhere),使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一
原创 2021-06-04 16:44:13
152阅读
Sublime Text是一个代码编辑器。也是HTML和散文先进的文本编辑器。漂亮的用户界面和非凡的功能,例如:迷你地图,多选择Python插件,代码段等等。完全可自定义键绑定,菜单和工具栏等等.漂亮的用户界面和非凡的功能,Sublime Text的主要功能包括:拼写检查,书签,完整的 Python
原创 2021-06-04 16:44:12
167阅读
一.了解index.ios.js React-Native就是在开发效率和用户体验间做的一种权衡。React-native是使用JS开发,开发效率高、发布能力强,不仅拥有hybrid的开发效率,同时拥有native app相媲美的用户体验。让我们使用以下react native命令生成一个项目。 现
原创 2021-06-04 16:44:11
219阅读
一 React 1 React定义 React的GitHub地址是 https://github.com/facebook/react。它的官方介绍是 A JavaScript Library for Building user interfaces.可以看出React提出的是一个新的开发模式和理念
原创 2021-06-04 16:44:09
157阅读
一 flexbox布局 1 flex布局 flexbox是ReactNative 应用开发中必不可少的内容,也是最常用的内容。 传统的页面布局是基于盒子模型,依赖定位属性,流动属性和显示属性来解决。对于一些伸缩性的布局,处理起来很是麻烦。于是在2009年,W3C组织提出来一种新的布局方案,既flex
原创 2021-06-04 16:44:07
542阅读
掌握了React Native的组件就可以使用IOS的原生组件和API。 一 View组件 就像开发web应用程序中,需要使用很多的HTML标签。例如 div,form。但是在基于DIV+CSS布局的web开发中,最为重要的元素就是 。 DIV是页面布局的基础,是作为容器元素存在的。在React N
原创 2021-06-04 16:44:06
443阅读
一 OC语法 1.关键字 基本上所有关键字都是以@开头,比如: @interface , @implementation, @end, @public, @protected, @private 2.字符串以@开头 比如 @"hello"是OC中的字符串,而"hello"是C中的字符串。 3.其他语
原创 2021-06-04 16:38:06
203阅读