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-学习收藏
Swift-进阶 03:值类型 & 引用类型
Swift进阶之路文章汇总本文主要介绍为什么结构体是值类型,类是引用类型值类型前提:需要了解内存五大区,内存五大区可以参考这篇文章
iOS-
底层原理24:内存五大区,如下所示值类型-1栈区的地址比堆区的地址大栈是从高地址
Style_月月
·
2022-02-09 21:43
iOS-
底层原理20:KVC底层原理
KVC的全称是Key-ValueCoding,翻译成中文是键值编码,键值编码是由NSKeyValueCoding非正式协议启用的一种机制,对象采用该协议来间接访问其属性。既可以通过一个字符串key来访问某个属性。这种间接访问机制补充了实例变量及其相关的访问器方法所提供的直接访问。官方文档API常见API//直接通过Key来取值-(nullableid)valueForKey:(NSString*)
AcmenL
·
2022-02-09 21:37
iOS-
图片撕裂、掉帧初解读
敲黑板,划重点!!!图片撕裂:两帧或多帧图片在屏幕上显示,导致显示效果错位,效果图如下:掉帧:指的是重复显示同一帧图片,非丢失了某一帧内容(有疑问,见思考)图片撕裂流程图如下:为解决上述问题:iOS引入垂直同步Vsync+双缓存区DoubleBuffering1、垂直同步Vsync:即加锁原理,当前帧内容没有显示完全时,不会读取下一帧内容,帧缓存区被锁定2、双缓存区DoubleBuffering:
一代千禧
·
2022-02-09 15:55
iOS-
底层原理21:KVO底层原理
上一篇文章
iOS-
底层原理20:KVC底层原理中了解了KVC底层原理,本文将讲解KVO底层原理。
AcmenL
·
2022-02-08 23:10
iOS-
底层原理8:类 & 类结构分析
类与对象的关系关于类和对象的关系,对于它的理解可能停留在对象是类创建(alloc,new)出来的这种很浅层的关系上,如果要深挖出背后的秘密,还是得从地址和内存入手,接下来就一步步探索。step1:创建一个继承于NSObject的LBHPerson类//.h文件@interfaceLBHPerson:NSObject@end//.m文件#import"LBHPerson.h"@implementat
AcmenL
·
2022-02-08 22:37
Swift-进阶 02:类、对象、属性
计算属性延迟存储属性&单例创建方式SIL在底层流程中,OC代码和SWift代码时通过不同的编译器进行编译,然后通过LLVM,生成.o可执行文件,如下所示SIL-1OC中通过clang编译器(clang可以参考这篇文章
iOS
Style_月月
·
2022-02-08 21:51
iOS-
数组的全排列
百度百科链接-全排列序言数组的全排列可用于求解八皇后问题。与此同时,全排列经常会出现在笔试或者面试,如求字符串的全排列。一全排列的递归实现1.1解题思路函数Perm(intlist[],intk,intm)1.list数组2.k前缀的索引位置,比如以12为前缀,则k=13.m要排列的数目,比如1为前缀,则要排列的数目为2,即m=2给定一个n个元素数组,其全排列的过程可以描述如下:1.求将list的
路飞_Luck
·
2022-02-08 10:12
iOS webSocket建立长连接
iOS-
即时通讯一般来说,即时通讯有两种方式WebSocket与Ajax的选择在WebSocket出来之前,实现即时通讯通常使用Ajax来实现,而Ajax是通过轮询的方式进行实时数据的获取,轮询就是在指定的时间间隔内
凌峰Mical
·
2022-02-07 09:04
iOS-
自动化打包方案
树下敲代码的超人关注2.32018.03.0116:53*字数776阅读8200评论22喜欢62技术文章/超人自动化打包方案1:xcodebuild打包使用xcodebuild自动化打包给我的感觉就是用命令行来控制Xcode进行编译打包,xcodebuild打包有3种,一种是adHoc测试打包ipa,一个是上传AppStore打包,一个企业级别打包。具体区别请看下面的步骤中说明了解xcodebui
小小小Lucky
·
2022-02-07 05:01
iOS-
底层探索06:isa 经典面试题分析
iOS底层探索文章汇总目录一、类在内存中存在几份二、objc_object与对象的关系三、什么是属性&成员变量&实例变量?四、成员变量和实例变量什么区别?五、元类中为什么会有类对象的类方法?六、实例对象、类对象、元类对象到底有什么区别呢?七、探究class_copyMethodList等方法八、iskindOfClass&isMemberOfClass的理解九、iOS中内省的几个方法?一、类在内存
differ_iOSER
·
2022-02-07 03:16
iOS-
执行pod lib lint时候报错 - ERROR | [iOS] unknown: Encountered an unknown error (The 'Pods-App' tar...
执行podliblint验证podspec文件是否正确报了一个下面的错误ERROR|[iOS]unknown:Encounteredanunknownerror(The'Pods-App'targethastransitivedependenciesthatincludestaticbinaries:(/private/var/folders/zj/hff3w0_s0fl6rpf291l2btgh
malgee
·
2022-02-07 01:09
iOS-
底层探索02:内存对齐分析
iOS底层探索文章汇总推荐学习:iOS结构体尺寸、iOS底层探索02-内存对齐目录前言:为什么要进行内存对齐一、结构体内存大小二、分析内存占用三、扩展:结构体嵌套结构体所占内存大小四、OC中类对象的内存分配五、内存优化(属性重排)前言:为什么要进行内存对齐很多CPU拒绝读取未对齐数据。当一个程序要求这些CPU读取未对齐数据时,这时CPU会进入异常处理状态并且通知程序不能继续执行。而且读取未对齐的数
differ_iOSER
·
2022-02-06 23:37
iOS-
底层原理:alloc & init & new 源码分析
一切的一切从最初的代码开始LGPerson*p1=[LGPersonalloc];LGPerson*p2=[p1init];LGPerson*p3=[p1init];NSLog(@"%@-%p-%p",p1,p1,&p1);NSLog(@"%@-%p-%p",p2,p2,&p2);NSLog(@"%@-%p-%p",p3,p3,&p3);输出结果为:-0x6000018981b0-0x7ffeea
z夜流星
·
2022-02-06 23:29
iOS-
离屏渲染详解
屏幕渲染OpenGL中,GPU屏幕渲染有两种方式.On-ScreenRendering(当前屏幕渲染)指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区进行.Off-ScreenRendering(离屏渲染)指的是在GPU在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作.几个名词"GPU""缓冲区".不知道GPU的就自行百度吧(--宝宝说不清).说下缓冲区.要明白缓冲区,首先就得要知道图像显示出来的
贝勒老爷
·
2022-02-06 17:18
iOS-
底层原理:源码探索的三种方式
本文主要介绍下源码探索的三种方法1、符号断点直接跟流程2、通过按住control+stepinto3、汇编跟流程下面详细讲下这三种方法是如何查找到函数所在的源码库,以alloc为例1、符号断点直接跟流程通过下alloc的符号断点选择断点SymbolicBreakpointimage符号断点中输入allocimagemain中的CJLPerson处加一个断点在走到这部分断点之前,需要关闭上面新增的符
Miraclely
·
2022-02-06 14:51
iOS-
底层探索18:KVC 底层原理
iOS底层探索文章汇总目录一、KVC基本使用二、KVC设值、取值底层分析三、简单自定义KVC设值、取值四、KVC使用场景相关面试题:谈谈你对KVC的理解KVC的全称是Key-ValueCoding,翻译成中文是键值编码,键值编码是由NSKeyValueCoding非正式协议启用的一种机制,对象采用该协议来间接访问其属性。即可以通过一个字符串key来访问某个属性。这种间接访问机制补充了实例变量及其相
differ_iOSER
·
2022-02-06 14:32
iOS-
流媒体 AutoStreamerPlayer
AutoStreamerPlayer://定义流媒体播放器对象AudioStreamer*_streamer;_streamer=[[AudioStreameralloc]initWithURL:[NSURLURLWithString:@"http://yinyueshiting.baidu.com/data2/music/121379113/121367437219600128.mp3?xcod
亦晴工作室
·
2022-02-06 13:22
iOS-
被拒原因(持续更新)
Guideline4.0-DesignGuideline4.0-DesignWenoticedanissueinyourappthatcontributestoalowerqualityuserexperiencethanAppleusersexpect:YourappdidnotincludeiOSfeatures.AppStoreappsshouldusenativeiOSbuttonsand
iixzp
·
2022-02-06 08:21
iOS-
底层探索15:类的扩展+关联对象
iOS底层探索文章汇总目录一、前言二、类的扩展三、关联对象一、前言前面的文章我们分析了类的加载流程,知道了类在有分类,动态添加方法、协议、属性的情况下才会生成rwe。那么这篇文章我们探索类的扩展和方法的动态绑定。二、类的扩展代码如下:@interfaceNATeacher:NSObject@end@interfaceNATeacher()//类的扩展@end@implementationNATea
differ_iOSER
·
2022-02-06 07:17
iOS-
死锁原理(银行家算法)
俗话说“书卷多情似故人,晨昏忧乐每相亲”闲暇之时,我们还是要多和故人联络联络感情。哈哈,言归正传,安闲之余,看操作系统原理一书,里面有一章节讲解的是死锁,很多人认为,死锁是很高端的操作系统层面的问题,离我们很远,一般不会遇上。其实这种想法是非常错误的,作为一名iOS开发,在iOS中,下面这段常见的程序就会造成死锁:intmain(intargc,constchar*argv[]){@autorel
翀鹰精灵
·
2022-02-06 04:59
iOS-
底层探索29:自定义Clang插件
iOS底层探索文章汇总目录一、LLVM编译二、创建自定义Clang插件一、LLVM编译1.1、LLVM下载当前系统环境如下:OS:macOSBigSur,芯片:AppleSiliconM1根据Mac当前系统下载LLVMReleases源码,保存的路径中不要包含空格之类的字符,这里选择当前最新的llvmorg-11.0.0源码。https://github.com/llvm/llvm-project
differ_iOSER
·
2022-02-06 01:15
iOS-
底层探索30:启动优化(Clang插桩)
iOS底层探索文章汇总目录一、查看APP启动耗时二、虚拟内存和物理内存三、二进制重排原理四、实现二进制重排五、Clang插桩六、其他问题一、查看APP启动耗时main函数之前的处理为pre-mian阶段,这篇文章主要分析这个阶段。添加DYLD_PRINT_STATISTICS参数打印出pre-mian阶段的耗时情况:各时段处理耗时分析:Totalpre-maintime:总耗时dylibloadi
differ_iOSER
·
2022-02-05 22:48
iOS-
底层原理9:objc_class 中 cache 原理分析
在
iOS-
底层原理7:isa与类关联的原理和
iOS-
底层原理8:类&类结构分析中,分析了objc_class中isa和bits,这篇文章主要是分析objc_calss中的cache属性1、源码初探step1
AcmenL
·
2022-02-05 19:37
iOS-
比较两个日期的大小
还在用转化为时间戳比大小吗?一行代码搞定:/**判断两个日期的大小*date01:第一个日期*date02:第二个日期*format:日期格式如:@"yyyy-MM-ddHH:mm"*return:0(等于)1(大于)-1(小于)*/-(int)compareDate:(NSString*)date01withDate:(NSString*)date02toDateFormat:(NSString
天空是灰色的白
·
2022-02-05 13:51
iOS-
底层探索19:KVO原理
iOS底层探索文章汇总目录一、什么是KVO二、KVO基本使用三、KVO实现原理四、总结参考一、什么是KVOKVO是基于KVC的,全称是Key-Value-Observer键值观察者。KVO提供一种机制,指定一个被观察的对象(A类),当对象某个属性(A中的属性name)发生更改时,对象会获得通知,并作出相应处理;【且不需要给被观察的对象添加任何额外代码,就能使用KVO机制】。KVO是Objectiv
differ_iOSER
·
2022-02-05 09:54
iOS-Block02-小谈block的底层数据结构
在写这篇文章的时候,距离上一篇写block的文章已经过了很久了
iOS-
谈谈自己知道的block(菜鸟的总结)。
IBigLiang
·
2022-02-05 05:44
iOS-
底层原理:启动优化(三)二进制重排
前提,在之前的两篇文章中,大致介绍了一些基本概念以及启动优化的思路,下面来着重介绍一个pre-main阶段的优化方案,即二进制重排,这个方案最开始是由于抖音的这篇文章抖音研发实践:基于二进制文件重排的解决方案APP启动速度提升超15%火起来的。二进制重排原理在虚拟内存部分,我们知道,当进程访问一个虚拟内存page,而对应的物理内存不存在时,会触发缺页中断(PageFault),因此阻塞进程。此时就
恍然如梦_b700
·
2022-02-03 17:01
带你深入理解
iOS-
内存对齐
前言在iOS底层源码学习中,会需要分析一个结构体所占用的内存大小,这里面就涉及到了内存对齐今天,我将结合内存对齐的概念、原因、规则、实际例子,让你深入理解内存对齐,掌握分析结构体所占内存大小的方法。目录.png源码地址MemoryAlignment简介内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。如果你想了解更加底层的秘密,探究“内存对齐”对你就不应该再
002and001
·
2022-02-03 14:27
iOS-
底层(15):iOS内存的五大区
在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域。如下图所示image下面分别介绍这五大区栈区(Stack)定义栈是系统数据结构,其对应的进程或者线程是唯一的栈是向低地址扩展的数据结构栈是一块连续的内存区域,遵循先进后出(FILO)原则栈的地址空间在iOS中是以0X7开头栈区一般在运行时分配存储栈区是由编译器自动分配并释放的,主要用来存储局部变量函数的参数,例如函数的隐藏参数(i
恍然如梦_b700
·
2022-02-03 14:04
iOS-
底层探索14:分类的加载(类的加载下)
iOS底层探索文章汇总目录一、前言二、readClass方法调用后类的结构探索三、将分类中的方法添加到类中四、懒加载与非懒加载下分类的加载情况五、LLVM相关流程分析一、前言上一篇文章iOS懒加载类与非懒加载类(类的加载中)中我们分析了懒加载类与非懒加载类的加载流程,并分析了分类的加载原理。我们知道了什么时候添加分类,什么时候初始化rwe,但是什么时候将分类添加到类中不知道。那么这篇文章我们就继续
differ_iOSER
·
2022-02-03 14:49
iOS-
离屏渲染探索
iOS项目性能优化时,不得不提到离屏渲染,为了提升性能,我们要求尽量减少离屏渲染的发生。那,什么是离屏渲染?离屏渲染如何会被触发?1:什么是离屏渲染渲染流程:正常情况下,经过CPU的计算、绘制、提交位图,以及GPU的渲染之后,会将数据结果存放到帧缓冲区,随后视频控制器会读取帧缓冲区的数据,经过数模转换,再逐行显示到屏幕上(如下图)。渲染离屏渲染呢?(off-Screen)离屏缓冲区GPU渲染的过程
土豆骑士
·
2022-02-02 23:15
iOS-
底层原理3:objc4-781调试
1、准备工作objc4-781源码依赖的文件源码编译需要依赖的文件说明:其中除了其中launchd-106.10需要在MacOSX10.4.4下载,其他的均可以在最新的的版本macOS10.15中检索到2、编译调试下载完源码解压直接运行,会出现以下问题:问题1:unabletofindsdk'macosx.internal'报错1解决:选择target->objc->BuildSettings->
AcmenL
·
2022-02-02 22:01
陈武营销分享纪元控股张铭博士关于元宇宙时代个人品牌策略
品牌打造的策略和步骤元宇宙俱乐部陈武营销推荐好文,值得
学习收藏
整体策划、商业模式、社群营销、项目孵化!打开百度APP看高清图片互联网时代下品牌打造与打造传统品牌的现在最重要的四个营销的手段,是这四个。
陈武营销
·
2022-01-27 11:25
iOS 最全动态库/静态库制作 Framework/.a
一、静态库1.创建静态库工程Xcode->CreateanewXcodeproject->
iOS-
>StaticLibraryimage.png2.将代码导入工程选择Creategroups(逻辑路径)
起床赚钱了
·
2021-12-13 09:29
iOS-
真机模拟器脚本合并framework(亲测可用)
在实际SDK项目开发中,我们会经常随时打包framwork,为了让静态库在模拟器和真机都可以正常的运行,就涉及到如何把一个工程生成的静态库打包以后生成的framework进行合并。最传统的方式,通过终端的lipo-create真机路径模拟器路径-output真机路径命令,但是太过于麻烦,网上有很多脚本,下面xcodebuild.sh脚本亲测可以帮助我们快速合并framwork.操作步骤:1、将xc
翀鹰精灵
·
2021-12-06 16:03
IOS-
私有库 GKit.podspec Pod 新版
知识时间长不用真的是容易忘,基础的教程可以看iOS开发——组件化之Cocoapods私有库详解lib_Gaos的BLOG-CSDN博客前言随着公司业务的不断发展,团队不断壮大的同时,项目也随之臃肿起来,如何保障团队协作的高效,自然的想到了组件化这个话题。下面总结下本人的梳理和思考。组件化为什么我们需要组件化项目模块间的解耦、模块实现可重用、提升团队成员之间团队之间的协作开发效率、更方便单元测试。并
Gaos的BLOG
·
2021-12-02 21:32
★IOS★
ios
iOS-
基础性问题
1、weak和assign的区别?iOS开发中weak和assign的区别assin与weak的区别/*__unsafe_unretained(不安全的,不引用-不持有)*如果指针指向的对象被销毁,但是assign并没有把指针清空*不会让引用计数器+1*/@property(nonatomic,assign)UIView*magentaView;/*weak一般用于修饰控件*如果指针指向的对象被销
lukyy
·
2021-11-21 23:29
iOS 动态库、静态库制作
一、动态库制作1.创建动态库工程Xcode->CreateanewXcodeproject->
iOS-
>Framework截屏2021-10-20下午3.20.18.png2.将代码导入工程选择Creategroups
maskerII
·
2021-10-20 18:27
iOS-
开发者账号测试设备达到100台处理办法
前言我所在的公司在一个开发者账号下有多个APP发布,APP的测试阶段是分几个测试团队进行APP测试的,由于开发、产品、测试、UI等都在开发阶段对产品进行测试体验、新的机型的上市、陈旧设备未移除等原因,造成设备达到上限,基于此分享一下处理措施处理办法:方式1发邮件image.png团队ID哪里寻找?登录开发者账号1634634276477.jpgTeamID右侧箭头指向的就是开发者账号的团队ID方式
混不吝丶
·
2021-10-19 17:05
iOS-
发布代码到cocoapods上,使用cocoapods管理代码
一、创建工程到本地目录代码本地位置cd/Users/xxx/Desktop///JYCCToolpod'JYCCTool'podlibcreateJYCCTool注意:(1)JYCCTool是开源库的名字,可以根据自己的功能开取名;这个命令执行后,命令行会问下面几个问题:(2)当被问及创建Swift还是OC项目,按自己要求回答,我选择ObjC;(3)当被问及是否创建一个demo应用包含在工程里,根
何年何月
·
2021-10-15 10:59
iOS-
屏幕适配(AutoLayout)Trait Variations
AutoLayout简介AutoLayout旨在替代Autoresizing,所以在同一个项目中,AutoLayout和Autoresizing是不能共存的,二者只能选其一,如果你选择了AutoLayout,那么Autoresizing自动被屏蔽掉;如果你选择了Autoresizing,那么AutoLayout自动被屏蔽掉。XCode5及其之后的版本,默认新建的项目就是使用AutoLayout关于
Ismail丶
·
2021-10-14 15:12
iOS-
如何优化界面
前言在我们的项目,我们有时候会遇到UI不太流畅,有时卡顿,给用户的感觉不那么友好,降低了体验感,那么这些问题是怎么产生的,以及如何解决这些问题,我们今天就来看下我们的UI如何优化。1卡顿的原理卡顿是因为掉帧引起的,为什么会出现掉帧呢,这就需要我们分析下屏幕显示的原理。CPU负责需要渲染的数据进行计算。GPU负责渲染,把需要渲染的数据输出到framebuffer(帧缓冲区)framebuffer再输
似水流年_9ebe
·
2021-09-25 09:03
iOS-
内存管理分析(中)
前言
iOS-
内存管理分析(上)一文我们分析了内存的五大区,taggedPointer,retain,release的底层分析,这篇文章继续分析内存管理的其它相关知识。
似水流年_9ebe
·
2021-09-21 21:57
iOS-
内存管理分析(上)
前言我们知道内存管理在任何一门编程语言中都有极其重要的地位,即然极其重要,也就意味着有难点,今天我们就来剖析iOS的内存管理相关的知识。1内存五大区内核区,用户区。用户内存五大区:堆、栈、bss(未初始化数据)、data(已初始化数据)、text(代码段)。栈区:局部变量,方法参数,函数,内存地址一般为:0x7开头堆区:通过alloc分配的对象,blockcopy,内存地址一般为:0x6开头BSS
似水流年_9ebe
·
2021-09-08 09:00
iOS-
浅析Swift开发使用的三方-SwiftyJSON
SwiftyJSON1.优点:在获取多层次结构的JSON数据时。SwiftyJSON不需要一直判断这个节点是否存在,是不是我们想要的类型,下一个节点是否存在,是不是我们想要的类型。同时,SwiftyJSON内部会自动对optional(可选类型)进行拆包(Wrapping),大大简化了代码。2.使用方法:测试数据:{"msg":"OK","data":{"_ts":1621321596832,"d
左方
·
2021-09-07 14:33
iOS-
深入了解LLVM编译器架构
前言我们会经常听到编译器这个词语,我们就会想什么是编译器,它的功能是什么,跟我们的开发又有什么关系,这篇文章就带大家走入LLVM编译器架构,揭开编译器的神秘面纱。1什么是编译器我们用Python(解释型)和C(编译型)来先对比下Python代码如下print("helloworld\n")我们通过pythonpy1.py命令执行下,看下效果,如图1python是python的解释器,这个就是解释型
似水流年_9ebe
·
2021-08-27 11:21
个人
学习收藏
资料
资料QT《Qt实战一二三》https://blog.csdn.net/liang19890820/article/details/50277095QT多线程编程详解https://blog.csdn.net/u012635648/article/details/89504115QT线程池的使用:QThreadPool类和QRunnable类https://blog.csdn.net/y396397
紅尘如夢
·
2021-08-25 17:14
iOS-
锁的原理分析(二)
前言
iOS-
锁的原理分析(一)我们分析了synchronized锁,这篇文章我们继续介绍其它的锁。
似水流年_9ebe
·
2021-08-20 23:01
iOS-
初识逆向IDA工具使用
逆向小白一枚,记录下自己学习反编译的一些历程~一般学习逆向,也是需要借助一些工具的,通过反编译工具,分析二进制文件,生产汇编代码,从而转换成高级语言。常用的反编译工具如下:①Hopper(貌似macOSBigSur版本11.2.3(20D91)系统下无法破解成功)②IDA(macOSBigSur版本11.2.3(20D91)系统可用)-->IDA工具介绍IDA的使用流程:(砸壳过程pass,直接用
翀鹰精灵
·
2021-07-30 13:52
iOS SDK开发--静态库framework
1.新建一个项目,File->Project->
iOS-
>Framework,取名MyFramework,2.设置配置,设置支持iOS系统的最低版本以及支持的设备--TARGETS->Genearl->
isaaczcbj
·
2021-07-16 17:15
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他