E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ios-开发常见问题
iOS-
网络请求依次执行,NSOperationQueue与dispatch_semaphore
apple.jpeg前提:近期做的项目中,用到了七牛云上传图片,七牛云的介绍就不多说了,安全,低成本(具体的集成查看七牛官网)。移动端的图片上传到七牛,服务器再去七牛拽取图片,拽取的时候可以设置参数以便拽下来的图片就是裁剪(等操作)好的。与服务器定的流程:第一步:客户端请求服务器,拿到服务器生成的七牛token第二步:客户端上传图片到七牛,成功后拿到七牛返回的图片地址第三步:将图片地址再次上传到服
黑色桃芯
·
2023-03-19 23:50
iOS-
屏幕旋转影响UITableViewCell的布局
这段时间做公司直播三分屏功能,遇到的问题记录一下。1、在刘海屏iPhone上,再推荐课程列表横屏之后,布局错误。问题页面:问题页面页面在不是刘海屏iPhone的手机是没问题,第一时间我就想到了安全区问题。本身页面也需要用到安全区的大小,并且本省这个播放页面是放在Window上的,不能修改安全区,这样会影响其他页面的布局;也百度了好多相关的问题,都没有起作用。在没有刘海的手机正常,我打开UI的层次视
小驴拉磨
·
2023-03-19 22:41
iOS-
底层原理 19:类扩展 与 关联对象 底层原理探索
本文的主要目的是针对类的加载的一个扩展,主要讲讲类拓展和分类的底层实现原理【面试题】类扩展与分类的区别1、category类别、分类专门用来给类添加新的方法不能给类添加成员属性,添加了成员属性,也无法取到分类中用@property定义变量,只会生成变量的setter、getter方法的声明,不能生成方法实现和带下划线的成员变量注意:其实可以通过runtime给分类添加属性,即属性关联,重写sett
响彻天堂
·
2023-03-19 16:04
iOS-
逆向15-HOOK原理《下》
《iOS底层原理文章汇总》上一篇文章《
iOS-
逆向14-HOOK原理》介绍了符号绑定的过程,本文继续介绍Hook原理image1.fishhook如何通过符号找到非懒加载符号表中绑定的地址进行修改的呢,
一亩三分甜
·
2023-03-19 12:01
iOS-
使用socket遇到的问题Attempt to connect to host timed out
socket在平时开发中还是比较常用到的,在这里我记录一下今天刚遇到的问题,查了许久百度都没有想要的答案,最后是在同事的帮助下解决的,所以记录一下,希望帮到有需要的开发者。1、ErrorDomain=GCDAsyncSocketErrorDomainCode=3今天连接socket的时候,遇到了一个很常见的问题,就是连接超时,报了以下错误ErrorDomain=GCDAsyncSocketErro
卓敦
·
2023-03-19 08:07
iOS 开发进阶 文章汇总
1、多环境开发配置
iOS-
开发进阶01:多环境配置xcconfig编写指南2、链接与SymboliOS-开发进阶02:链接与Symbol(上)
iOS-
开发进阶03:链接与Symbol(下)符号表SymbolTable3
differ_iOSER
·
2023-03-19 06:23
Swift-02:类、对象、属性
计算属性延迟存储属性&单例创建方式SIL在底层流程中,OC代码和SWift代码时通过不同的编译器进行编译,然后通过LLVM,生成.o可执行文件,如下所示imageOC中通过clang编译器(clang可以参考这篇文章
iOS
恍然如梦_b700
·
2023-03-19 01:35
单元测试
可以有其他方式创建File->new->target->
iOS-
>iOSUnitTestingBundle。
Carson_Zhu
·
2023-03-18 23:36
iOS-
代码签名--苹果代码签名的格式
1,代码签名验证代码的“正确性”是计算机科学中最难的问题之一,目前没有“完美”办法能够分析任意一段代码,确定它是否是恶意的,而目前通常对代码验证的方法是数字签名。目前数字签名用于验证验证代码来源:由签名者的私钥进行签名,其他使用者可以用公钥进行验证。验证代码的真实性:对代码的任何修改都有可能破坏数字签名。代码签名不是苹果独创的,其他开发语言都在使用它,比如java。但是苹果对于整个代码签名的解决方
简鱼7819
·
2023-03-18 16:59
iOS-
底层原理 15:dyld加载流程
本文的目的主要是分析dyld的加载流程,了解在main函数之前,底层还做了什么?引子创建一个project,在ViewController中重写了load方法,在main中加了一个C++方法,即kcFUnc,请问它们的打印先后顺序是什么?image运行程序,查看load、kcFunc、main的打印顺序,下面是打印结果,通过结果可以看出其顺序是load-->C++方法-->mainimage为什么
响彻天堂
·
2023-03-18 14:56
iOS-
UITableView数据源同步
问题多线程下,修改tableview的数据源,数据同步问题的解决方案?应用场景:在某些新闻类app中,当有用户做一些删除操作(比如关掉了一条广告),然后同时又有数据的后向刷新(loadMoreData)删除操作是在主线程,loadMoreData是在子线程,这就涉及到了多线程对数据的访问中,怎么保证数据源同步问题。解决方案并发访问,数据拷贝我们来看一幅时序图多线程并发访问数据源主线程对数据源1进行
时米高的人生笔记
·
2023-03-18 06:29
iOS-
底层原理-内存管理
一使用CADisplayLink、NSTimer有什么注意点?循环引用范例代码CADisplayLink@property(strong,nonatomic)CADisplayLink*link;//1.发生内存泄露self.link=[CADisplayLinkdisplayLinkWithTarget:selfselector:@selector(linkTest)];[self.linkad
贝勒老爷
·
2023-03-17 23:48
iOS-
集成多个SDK内部文件重复冲突解决
最近使用Hbuilder集成一个项目,集成了很多sdk,发现有两个sdk都是用了Masonry第三方库布局,然后编译报错,关键字:duplicatesymbol,出现这个就表示有重复文件了,我们需要把其中的一个sdk文件中生成的重复的.o文件一一删除即可,如下则为相关位置,我将把Masonry.framework的相关重复文件一一移除合并解决冲突问题。1步骤如下:1.打开终端cd到所要修改的sdk
lanlinxl
·
2023-03-17 20:32
iOS-
模型
在开发中,经常使用到模型,通常做法就是字典转模型字典转模型的过程最好封装在模型内部模型应该提供一个可以传入字典参数的构造方法-(instancetype)initWithDic:(NSDictionary*)dic;+(instancetype)xxxWithDic:(NSDictionary*)dic;使用字典的坏处一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编
皆为序幕_so
·
2023-03-17 12:50
iOS-
打包上架构建版本一直不出现/正在处理/自动消失
iOS开发过程中,打包上架苹果审核是一个不可或缺的环节。说实话,这个问题我遇见两次了,为了让自己长点记性,决定写下来。首先,列举几种情况:1.iPa包上传至Appstore后,一个小时内不显示构建版本。(等待15分钟-25分钟是正常的)构建版本.png2.“活动”栏目下,所有构建版本长时间显示“正在处理”,或者一段时间之后,构建版本直接消失不见。正在处理.png结果:上述两种情况出现的时候,说明你
冻结的转身
·
2023-03-17 06:10
ios-
使用AVFoundation自定义系统相机
本文主要是封装一个类,实现相机系统的静态图片捕捉以及视频的功能。第一步:设置相关参数:设置相关参数第二步:初始化相关参数:1.初始化捕捉会话,以及设置图像的分辨率。高分辨率2.拿到默认视频捕捉设备,并设置为当前活跃输出对象设置当前活跃对象3.选择默认音频捕捉设备设置音频输入设备4.初始化摄像头静态捕捉对象以及设置捕捉到的图片格式以及添加入捕捉会话对象那添加静态捕捉对象5.创建一个AVCapture
小小的邓
·
2023-03-17 05:06
iOS-
深入研究Block
前言在我们的实际开发中,Block的使用率相当之高,我们在使用Block的时候,会遇到各种各样的问题,比如经典的循环引用,那么这些问题到底是怎么产生的,我们又该如何去解决,这就需要我们对Block有深入的了解,才能更好的解决这些问题,今天我们就来深入分析一下Block。1Block的类型我们知道Block分为全局Block、栈Block、堆Block。我们怎么区分或者判断是哪种Block呢,我们来
似水流年_9ebe
·
2023-03-17 02:02
iOS-
马甲包制作注意事项
iOS马甲包过包注意事项核心代码(非马甲代码)的注意事项版本控制由于开发过程中核心代码会随着需业务需求的改变,需要考虑做好版本控制,个人认为可以将核心代码通过git进行版本控制。避免”代码重复“的问题(苹果审核规则4.3)随着核心业务功能的增加和代码量的增加,核心代码也需要考虑“代码重复”问题,个人建议可以将核心代码打包成.a的SDK,只暴露方法调用的.h文件。避免“关键字”问题核心代码里避免敏感
鱼与熊掌不能兼得
·
2023-03-16 19:07
iOS-
核心动画
前言:核心动画的基础知识,包括基本动画、帧动画、转场动画相关知识。一、核心动画(CoreAnimation)1.1简介CoreAnimation,它是一组动画处理API,使用它能做出非常炫丽的动画效果,使用少量的代码就可以实现非常强大的功能。CoreAnimation可以用在MacOSX和iOS平台。CoreAnimation的动画执行过程都是在后台操作的,不会阻塞主线程。CoreAnimatio
梦蕊dream
·
2023-03-16 17:32
iOS-
代码签名--重签名
1,重签名的原因?有需求就有市场,当前苹果的签名机制也允许用户可以重签名一是代码有业务移交等类似需求操作,需要重签名后使用二是有恶意攻击,代码注入,重签名后让用户安装,添加挂件脚本或者恶意操作三是有些软件不好放在AppStore上2,重签名有哪些操作,要点?1,三要素:包名bundleID、embedded.mobileprovision、证书包名bundleID这大家都知道,手机上app的标识。
简鱼7819
·
2023-03-16 13:36
iOS-
常用函数
算术函数intrand():随机数生成。srand(time(nil));//随机数初期化intval=rand()P;//0~49之间的随机数)intabs(inta):整数的绝对值intval=abs(-8);→8//浮点数的时候用fabs。doublefabs(doublea):浮点数的绝对值doubleval=fabs(-12.345);→12.345//整数的时候用abs。doublef
良人不归_墨染锦年
·
2023-03-16 04:34
iOS-
动态方法决议 & 消息转发
在
iOS-
慢速方法查找和
iOS-
快速方法查找中我们分别提到了objc_msgSend的快速查找和慢速查找,如果经历这两步仍未找到该方法的imp会怎么样呢?
Summit_yp
·
2023-03-15 14:23
1电商系统
iOS-
初始化项目
1.当前的软硬件MacbookAiriPhone12手机一枚macOS12.6Xcode14.0Swift(编程语言)纯代码2.初始化项目截屏2022-10-0710.32.34.png3.删除Storyboard截屏2022-10-0710.58.36.png4.重写AppDelegate方法////AppDelegate.swift//cyshop////Createdbyduanon2022
我要当个程序员
·
2023-03-15 07:16
Swift第7天刷新和表格
参考自学
iOS-
三十天三十个Swift项目《Project07刷新和表格》实现效果(自己仿写,Swift5.0,Xcode11.4)刷新和表格【概述】项目很简单,是Swift语言下,表格与刷新功能。
涵啸虎
·
2023-03-15 02:11
iOS-
自定义导航栏后侧滑返回失效,且控制器添加ScrollView后侧滑返回失效
iOS-
自定义导航栏后侧滑返回失效从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是,
DockeriOS
·
2023-03-14 22:35
iOS-
自定义NavigationBar解决不同状态bar在push和pop过渡时出现跳变问题
UINavigationBar的问题在使用UINavigationBar的过程,始终面临一个问题,就是当两个甚至多个ViewController的NavigationBar是不同的状态,比如背景色,透明度,shadowImage等。如果直接修改UINavigationBar的这些属性会发现在push/pop的时候,NavigationBar出现闪烁跳变。于是想自己定制一个NavigationBar
Yu_Chou
·
2023-03-14 20:18
iOS-
常见类型对象
一、iOS数组去重的方法1.利用NSDictionary的AllKeys唯一性使用方法:将数组元素存入字典,利用字典key的唯一性获取去重之后的AllKeys,即为去重后的数据。特点:去重后的数组是无序的NSArray*array=@[@"a",@"a",@"a",@"b",@"c"];NSMutableDictionary*dic=[NSMutableDictionarydictionary];
逆流瞅瞅
·
2023-03-14 15:58
iOS-
账号密码自动填充与添加
参考:https://juejin.im/post/6844903885908213767注意:webcredentials文件的链接地址为https://server.com/.well-known/apple-app-site-associationerror1:发生错误未能完成操作。(OSStatus错误-34018-httpsnotfoundincom.apple.developer.as
iOSWater
·
2023-03-14 13:48
iOS-
底层原理30:内存管理(二)强引用分析
本文主要是通过定时器来梳理强引用的几种解决方案强引用假设此时有两个界面A、B,从Apush到B界面,在B界面中有如下定时器代码。当从Bpop回到A界面时,发现定时器没有停止,其方法仍然在执行,为什么?self.timer=[NSTimertimerWithTimeInterval:1target:selfselector:@selector(fireHome)userInfo:nilrepeats
AcmenL
·
2023-03-13 22:14
iOS-
中装软件项目总结
此项目自2017年伊始一直持续到2018年3月份,此项目一共两个人开发,我和我的另一个同事。这个项目并不是严格意义上的纯oc项目,它混合加入了c++的编码工作,原因是底层的socket封装是使用c++进行的,而我们需要封装远程访问数据库的一些增删改查操作,此外还需要进行长连接的一些测试工作。这个项目是一个移动版的OA协同办公软件,类似微信企业版,所以大部分的重点就在与即时通讯的开发与调试。我的同事
Sun橙子
·
2023-03-13 20:10
iOS-
关于HandyJSON的个人浅析
一个最基本的遵循HandyJSON的模型的实现如下:...classTestModel:HandyJSON{privatevarname:String?requiredinit(){}}...ifletdata=TestModel.deserialize(from:""){}...需要的数个步骤分别为遵循HandyJSON协议,根据协议实现init方法,以及最后的调用协议方法解析JSON字符串填充
茄子星人
·
2023-03-13 19:39
iOS-
底层(4):内存对齐原理
获取内存大小的三种方式sizeofclass_getInstanceSizemalloc_sizesizeof1、sizeof是一个操作符,不是函数2、我们一般用sizeof计算内存大小时,传入的主要对象是数据类型,这个在编译器的编译阶段(即编译时)就会确定大小而不是在运行时确定。3、sizeof最终得到的结果是该数据类型占用空间的大小class_getInstanceSizeruntime提供的
恍然如梦_b700
·
2023-03-13 08:25
ios-
头疼难找的bug-分享商品合成图内存暴增
在做多款商品的多张商品图片下载后合成一张图片分享微信功能时遇到两个bug,一是内存暴增达1G,二是分享微信聊天好友经常失败内存暴增的原因是压缩图片方法生成的data没有释放,因为image被我存到数据模型中引用了,取消把下载的图片存到模型中就好了。NSData*compressedData=UIImageJPEGRepresentation(image,0.9);分享微信失败原因是下面方法第三个参
zheNgHH
·
2023-03-12 16:24
ios-
面试-UIView 和 CALayer
1,所有的view都是由一个底层的Layer来驱动,每个UIView内部都有一个CALayer在背后提供内容的绘制和显示。2,Layer侧重于图形的显示,而view相当于layer的管理者。3,UIView继承与UIResponder而CALayer继承于NSObject。所以UIView可以响应事件,而CALayer则不能。,4,两者都有树状层级结构,layer内部有sublayers,view
简鱼7819
·
2023-03-12 02:45
iOS-
制作.a静态库SDK和使用.a静态库
创建静态项目创建一个新的工程,选择Framework&Library下面的CocoaTouchFramework。设置工程,将buildactivearchitectureOnly设置为NOSnip20180912_2.png任意建一个类添加方法设置暴露头文件(别人能看到的.h文件)模拟器和真机下分别在debug和release环境下运行代码,总共是4次右键点击Products库文件,Showin
码省理工0
·
2023-03-11 20:15
iOS-
多线程的底层实现
一:线程与进程的区别进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。1>一个应用程序对应一个进程,一个进程帮助程序占据一块存储空间。也有多个进程的应用(比如浏览器,多开几个页面)2>要想在进程中
yycache
·
2023-03-11 18:52
iOS-
数据库本地存储简介
iOS有一道经典的面试题:数据的持久化存储有哪些方式?标准答案:常见的持久化存储方法有NSUserDefaults、plist、归档存文件、sqlite、CoreData已经新兴的Realm这样的答案对付面试官应该是够了,而实际运用中,你真的能搞清这些技术面向的场景么?技术分类偏好设置偏好设置是最简单的归档方式,适合存储简单的配置条目。使用NSUserDefaults单例就可以存储一些可序列化的类
球哥
·
2023-03-11 15:59
iOS-
先pop掉当前controller, 再push的实现
一、需求场景第一个VCpush到第二个VC;在第二个VC中push出来第三个VC时,要先把第二个VCpop掉,因为需要对第三个VC进行pop时,返回到的是第一个VC需求二、第一版方案ThirdViewController*vc=[[ThirdViewControlleralloc]init];//先pop掉第二个VC[self.navigationControllerpopViewControll
时米高的人生笔记
·
2023-03-11 15:01
独立开发者-实用工具三方服务技术推荐
此篇文章主要推荐关于
iOS-
独立开发者比较实用的工具资源等,让大家能更快的上手
JerseyBro
·
2023-03-11 12:44
iOS-
热更新/组件化/跨平台开发
一、组件化组件化步骤1.每创建一个组件都会带有一个xxx.podspec的索引文件。专门用来存放这些索引文件的库就叫索引库。我们需要将这些文件上传到远程索引库才能保证其他的同事能够拿来使用。2.下面开始创建远程索引库:登录github创建新的仓库创建远程索引库由于之前已经创建好了一个库所以我的库名字跟上面有差异3.如下图,说明已创建成功:仓库地址可以看到远程索引库的地址啦二:本地索引库与远程索引库
穹冰舞
·
2023-03-11 12:09
iOS-
关于View布局的总结
一、写在前面开发者在写View的时候一定逃不掉的就是这个命题。用Frame也好用Autolayout也好,如果没有精心设计过,布局部分一定惨不忍睹。直接使用CGRectMake的话可读性很差,光看那几个数字,也无法知道view和view之间的位置关系。用Autolayout可读性稍微好点儿,但生成Constraint的长度实在太长,代码观感不太好。Autolayout这边可以考虑使用Masonry
Leewins
·
2023-03-10 11:35
iOS-
自定义转场动画
iOS中推出控制器的方式有两种:push和present,iOS的push动画基本上已经成为苹果的一个标志,最好不要自定义,不然和系统的动画不一样会显得不和谐。关于present,更多的可参考:present和dismiss。下面介绍如何自定义present方式的转场动画。1.UIViewControllerTransitioningDelegate协议想自定义转场动画的VC必须遵守UIViewC
Imkata
·
2023-03-10 03:52
iOS-
文件上传和断点离线下载
一.iOS中发送HTTP请求的方案在iOS中,我们常用发送HTTP请求的方案有苹果原生(自带)NSURLConnection:用法简单,最古老最经典最直接的一种方案(iOS9.0弃用)NSURLSession:功能比NSURLConnection更加强大,苹果目前比较推荐使用这种技术第三方框架AFNetworking:简单易用,提供了基本够用的常用功能,维护和使用者多二.NSURLConnecti
Fendouzhe
·
2023-03-09 23:46
iOS-
组件化方案与实践:创建cocoapod私有库详细步骤
制作远程私有库分为以下几个步骤:-创建私有Git远程索引库-创建本地索引库-创建私有Git远程代码库-创建本地代码库-使用Pod库一、创建私有Git远程索引库1.概念:每创建一个组件都会带有一个xxx.podspec的索引文件。专门用来存放这些索引文件的库就叫做索引库。我们需要将这些索引文件上传到远程索引库才能保证其他的同事能够拿来用。2.下面开始创建远程索引库:登录github进行创建创建远程索
XTK_iOS
·
2023-03-09 18:49
iOS-
内存管理(二)-引用计数
Objective-C内存管理的核心思想就是通过对象的引用计数来对内存对象的生命周期进行控制。说直白一点,就是调用retain会加1,调用release就会减1,引用计数清零或者调用dealloc就销毁。引用计数引用计数,即为对象被持有的次数。是内存管理的核心点。下面我们来看一个关于引用计数的例子:-(void)testRefCount{NSObject*obj=[NSObjectalloc];N
xxxxxxxx_123
·
2023-03-09 11:53
iOS-
超简单跳转到外部浏览器之openURL在iOS10前后使用方法(并解决跳转无反应问题)
iOS10之前使用的方法是:[[UIApplicationsharedApplication]openURL:(要跳转的URL)];举个:[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"http://www.baidu.com"]];iOS10之后使用的方法是:[[UIApplicationsharedApplicati
AutismGG
·
2023-03-09 08:48
iOS-
侧滑溜冰问题修复
项目中用到了JXCategoryView并且需要侧滑手势,在VC中用到了self.interactivePopGestureRecognizer.delegate=self;唤起手势,但是出现溜冰bug[侧滑之后松手自动划过去]解决方案是:在TPNavigationController的push方法中,增加判断即可if([selfrespondsToSelector:@selector(inter
aggie1024
·
2023-03-09 04:33
小程序
开发常见问题
解决方法
1阻止事件冒泡//catchtap替换bindtap点击操作2wx.previewImage点击显示大图(放大黑屏解决)//wxmlasyncpreviewImg(e){letindex=e.currentTarget.dataset.index;//获取点击图片的indexconst{imgPprefix,urls:imagesList}=this.dataawaitwx.previewImag
viwei
·
2023-03-05 09:47
iOS-
底层原理18:Method-Swizzling 方法交换
method-swizzling是什么?MethodSwizzling本质上就是对方法的IMP和SEL进行交换,也是我们常说的黑魔法。方法交换的原理MethodSwizzing是发生在运行时的,在运行时将一个方法的实现替换成另一个方法的实现;每个类都维护着一个方法列表,即methodList,methodList中有不同的方法,每个方法中包含了方法的SEL和IMP,方法交换就是将原本的SEL和IM
AcmenL
·
2023-03-03 12:05
iOS-
开发进阶05:动态库
iOS开发进阶文章汇总目录一、可执行文件链接动态库.dylib二、dyld加载动态库流程三、创建动态库.dylib四、创建动态库Framework五、tdb格式六、静态库与动态库的区别总结一、可执行文件链接动态库.dylib准备代码如下:test.m文件中代码如下:#import#importintmain(){AFHTTPSessionManager*manager=[AFHTTPSession
differ_iOSER
·
2023-03-01 20:16
上一页
5
6
7
8
9
10
11
12
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他