iOS开发
文章平均质量分 86
本专栏主要总结自己在iOS开发遇到的问题,学习到的知识点。
梧雨北辰
天行健,君子以自强不息!
展开
-
Xcode多环境配置
"I walk slowly, but I never walk backward."我走得很慢,但从不后退主要内容:1.区分Project、Target、Scheme2.多Target 配置3.Scheme配置4.xcconfig文件配置一、区分Project、Target、Scheme•Project:是一个项目的整体,相当于一个仓库,包括了所有的代码和资源文件;•Target:相当于一个具体的产品,包含了对于代码,资源文件的具体使用规则和配置;•Scheme: 对指定Target的环境进行配原创 2021-10-11 22:55:13 · 798 阅读 · 0 评论 -
iOS内存管理(2)-深入解析自动释放池
主要内容:AutoreleasePool简介AutoreleasePool底层原理Autorelease与NSThread、NSRunLoop的关系AutoreleasePool在主线程上的释放时机AutoreleasePool在子线程上的释放时机AutoreleasePool需要手动添加的情况一、Autorelease简介iOS开发中的Autorelease机制是为了延时释放对象。自动释放的概念看上去很像ARC,但实际上这更类似于C语言中自动变量的特性。自动变量:在超出变量作用域后将被废弃;自动释放池:在原创 2021-10-10 17:56:34 · 928 阅读 · 0 评论 -
iOS内存管理(1)-基本概念整理
主要内容:01.内存区域划分02.内存管理/引用计数03.MRC手动管理引用计数04.ARC自动引用计数05.内存泄漏问题06.野指针问题一、内存区域划分程序在分配内存的时,主要分为:栈区、堆区、静态区、常量区、代码区;内存区域具体说明栈区存放局部变量的值,系统自动分配和释放;特点:容量小,速度快,有序堆区存放通过malloc系列函数或new操作符分配的内存,如对象;一般由程序员分配和释放,如果不释放,则出现内存泄露;特点:容量大,速度慢,无序;静态区存放全局变量和静态变量(包括静态局部变量和静态原创 2021-10-10 17:37:37 · 309 阅读 · 0 评论 -
iOS状态栏使用总结
目录:一、状态栏与导航栏 二、设置状态栏显隐与字体样式 三、设置状态栏背景色 四、启动页隐藏状态栏 五、状态栏、导航栏相关的常用宏定义相关文章:iOS导航栏的使用总结一、状态栏与导航栏状态栏:显示时间、电池等信息 导航栏:显示app页面标题,返回按钮等iOS7之前:状态栏与导航栏是分开的; iOS7之后:状态栏与导航栏合在一起;导航部分总高度(64)= 状态栏高...原创 2018-06-11 10:53:22 · 1346 阅读 · 0 评论 -
iOS导航栏使用总结
目录:一、设置导航栏样式 二、自定义导航栏返回按钮后侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题相关文章:iOS状态栏的使用总结一、设置导航栏样式设置导航栏的样式可分为全局设置与局部设置;1.全局设置全局设置一般的都是在AppDelegate中设置,这样整个app都会生效,相关的代码与效果图如下://1.设置导航栏背景颜色[[...原创 2018-06-11 10:56:59 · 1238 阅读 · 0 评论 -
Runtime运行时-基础篇
本文主要整理了Runtime的相关知识。对于一个iOS开发者来说,掌握Runtime的重要性早已不言而喻。OC能够作为一门优秀的动态特性语言,在其背后默默工作着的就是Runtime。在网上也看过很多资料,最终我还是希望在一些关键的知识点上能够融入自己的理解,从简单的问题出发,一步一步理解和学以致用。相关文章:iOS运行时Runtime应用目录:一、怎么理解OC是动态语言,Run...原创 2018-06-11 11:16:55 · 600 阅读 · 0 评论 -
Runtime运行时-应用篇
在上篇文章iOS运行时Runtime基础后,本篇将会总结Rutime的具体应用实例,结合其动态特性,Runtime在开发中的应用大致分为以下几个方面:相关文章:iOS运行时Runtime基础一、动态方法交换:Method Swizzling实现动态方法交换(Method Swizzling )是Runtime中最具盛名的应用场景,其原理是:通过Runtime获取到方法实现的地址...原创 2018-06-11 11:19:21 · 570 阅读 · 0 评论 -
iOS视频播放的基本方法
本文总结了iOS中最常见的视频播放方法,不同的方法都各具特点,我希望能够总结它们的不同,方便在开发中选择合适的技术方案。Apple为我们提供了多种方法来实现视频播放,包括MPMoviePlayerController,MPMoviePlayerViewController,AVPlayer,AVPlayerViewController等。而值得注意的是,上述的MPMoviePlayerCont...原创 2018-06-11 11:12:50 · 952 阅读 · 0 评论 -
ReactiveCocoa函数响应式编程-应用篇
使用RAC其实就是一个创建信号订阅信号的过程。上篇ReactiveCocoa函数响应式编程-基础篇,主要简单介绍了RAC的信号机制,本篇则以信号为核心,就信号常用的类、操作信号的方法,替换响应处理等方面总结RAC的使用。目录:一、RAC中常用的类 二、RAC中常用的宏 三、RAC中信号的常用操作 四、RAC常用的处理事件响应的方法 五、本篇总结本篇还提供了关于RAC使用的两个测...原创 2018-04-02 19:19:20 · 469 阅读 · 0 评论 -
ReactiveCocoa函数响应式编程-基础篇
一直以来,都很想学学ReactiveCocoa这个神奇的技术,但是最后都由于各种原因搁置了。这次终于也认真的研究一番,把自己学习心得整理出来留个记录。目录:一、了解函数响应式编程 二、ReactiveCocoa简介 三、ReactiveCocoa集成 四、理解什么是信号 五、从源码理解RAC的信号机制 六、本篇总结一、了解函数响应式编程函数式编程(Funcat...原创 2018-04-02 19:04:59 · 594 阅读 · 0 评论 -
iOS与JS交互的总结
实现iOS和JS的交互原创 2016-07-29 18:39:29 · 1698 阅读 · 0 评论 -
关于iOS开发CPU架构的问题
首先,之所以提到CPU架构的问题,其实是因为我们iOS开发使用的静态库与动态库与之紧密相连。每一个开发的App都要运行在模拟器或者真机上,在编译的时候,Xcode需要去分析当前运行平台的CPU架构,然后确定所使用的静态库是否支持这个CPU架构。如果不支持就会报错。一、什么是CPU架构“CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上原创 2016-11-08 15:00:36 · 2444 阅读 · 0 评论 -
Charles抓取HTTP、HTTPS的数据包
抓包分析数据在移动开发中十分重要,可以帮助我们更快的了解数据构成,提高开发效率。但是在苹果要求上线的App必须使用HTTS之后,HTTPS数据包的抓取分析较为麻烦,在此总结了在mac上使用Charles抓包的详细步骤。首先我们下载最先版本的Charles 官网下载:https://www.charlesproxy.com/download/ 免费版下载:http://xclient.info/s原创 2017-01-04 14:46:44 · 9811 阅读 · 2 评论 -
iOS相机、麦克风等权限的判断与设置
一、iOS应用权限检测在涉及到这个问题的时候,首先为了适配iOS10系统,我们必须首先在info.plist文件声明中将要用到的权限,否则将会引起崩溃如下: “This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.原创 2017-01-10 09:32:02 · 13338 阅读 · 0 评论 -
AFNetworing同步网络请求?
AFNetWorking同步网络请求?原创 2017-07-15 10:43:07 · 646 阅读 · 0 评论 -
iOS多Target开发相似App
我们在iOS开发中可能会遇到同时开发多个类似项目的情况。这些项目大同小异,有诸多代码可以共用,如果每个项目都分别开发,这在后期的迭代中会十分繁琐。为了解决这个问题,使用多Target开发是一种比较好的选择,本文就这一技术实现进行简要总结。原创 2017-11-21 11:30:46 · 1208 阅读 · 0 评论 -
iOS横竖屏旋转及其基本适配方法
前段时间抽空总结了一下iOS视频播放的基本用法,发现这其中还有一个我们无法绕过的问题,那就是播放界面的旋转与适配。的确,视频播放与游戏类型的App经常会遇到这个的问题。由于至今接手的项目中不常涉及这块知识疏于总结,在搜索了一些资料后也发现都很散乱,所以决定在这里重新整理一下。目录一、最让人纠结的三种枚举 二、两种屏幕旋转的触发方式 三、屏幕旋转控制的优先级 四、开启屏幕旋转的全局原创 2018-01-11 18:18:06 · 22702 阅读 · 3 评论 -
DTCoreText的集成与使用
DTCoreText是可以将HTML字符串转化为富文本使用的工具,既保证原生实现又能适应灵活的样式修改,而且相比于使用WebView显示内容在性能上也有很大优势。本篇就这一技术的使用进行总结。目录一、相关文档 二、DTCoreText的集成 三、DTCoreText的使用 四、可能遇到的错误 五、参考链接一、相关文档GitHub: https://github.c原创 2018-01-30 14:21:52 · 4264 阅读 · 0 评论 -
关于iOS设备参数的获取
一、判别当前手机系统版本号 //系统版本字符串 CGFloat currentSystemVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; NSLog(@"currentSystemVersion:%f",currentSystemVersion); //currentSystemVersi原创 2017-01-03 19:09:42 · 1073 阅读 · 0 评论 -
Xcode报错总结
iOS开发,Xcode报错提示总结原创 2017-01-03 10:27:06 · 815 阅读 · 0 评论 -
iOS提交审核失败:通知“has changed to Invalid Binary.”错误
2016-11-09今天在App提交审核的时候遇到了一个问题,打包上传到itunes Connect的过程都没有问题,但是之后在itunes Connect的活动中却看不到自己上传的新版本二进制文件。而且自己还收到了“Your app… (Apple ID:xxx) has changed to Invalid Binary”的错误通知。 在网上找了一些资料都说是iOS10权限的问题,比如在App原创 2016-11-09 14:57:00 · 4247 阅读 · 0 评论 -
iOS11后32位应用升级
今天接受了一个改造旧项目的任务,据说项目唯独在iOS11上无法运行。这很容易就让我们想到与最近苹果iOS11放弃支持32位应用的事件有关。确实我在平时开发的项目中也没怎么涉及这个问题,这次在升级应用支持64位的过程中还是遇到了些问题,所以在这里总结一下,也许还会有同行的朋友遇到。一、iOS11停止支持32位的来由苹果于2013年9月推出了iPhone 5S新手机,采用的全新A7处理器其原创 2018-01-08 13:36:17 · 2552 阅读 · 0 评论 -
iOS开发中设置圆角的方法
效果图:方法一:使用代码设置 //第一步设置圆角的大小 //如果是设置为视图的高度的一半,则为半圆弧 _circleBtn.layer.cornerRadius = 5; //第二部:设置剪切 _circleBtn.layer.masksToBounds =YES; //CAL原创 2016-04-16 10:34:31 · 1157 阅读 · 0 评论 -
探究Block原理(上篇)-Block本质及存储域问题
主要内容:1.理解Block的本质2.理解Block的存储域分类3.理解Block的Copy原理一、探究Block的本质从一个最简单的Block使用示例说起,我们分析如下代码://main.m文件:#import <Foundation/Foundation.h>int main(int argc, char * argv[]) { int num = 10;...原创 2019-10-06 22:19:42 · 458 阅读 · 0 评论 -
探究Block原理(下篇)-捕获变量分析及__block原理
主要内容:1.分析Block捕获外部变量的过程2.理解Block修改外部变量的限制3.分析__block存储域类说明符的原理4.理解__block变量的存储域5.探究Block对对象的捕获过程6.Block的循环引用问题一、分析Block捕获外部变量的过程为了保证block内部能够正常访问外部的变量,Block有一个变量捕获机制,即Block语法表达式所使用变量可以被保存到Bloc...原创 2019-10-10 10:01:42 · 782 阅读 · 0 评论