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-
底层原理 07:isa与类关联的原理
iOS底层原理文章汇总本文的主要目的是理解类与isa是如何关联的在介绍正文之前,首先需要理解一个概念:OC对象的本质是什么?OC对象本质在探索oc对象本质前,先了解一个编译器:clangClangclang是一个由Apple主导编写,基于LLVM的C/C++/OC的编译器主要是用于底层编译,将一些文件``输出成c++文件,例如main.m输出成main.cpp,其目的是为了更好的观察底层的一些结构
Style_月月
·
2021-06-27 05:55
iOS-
史上最全的社交分享封装(QQ,微信,微博,短信,邮件)
1.需求:国内几大常见的社交分享(只写了具体分享操作的代码,前期的配置和Appdeltegate中的回调url以及第三方注册的相关方法已省略,需要自己添加)2.SSSocialMessageObject是自己封装的分享对象,按照需求自己定义,包括title,thumImage,url,text(摘要)等3.有些分享参数不符合条件可能会意外埋坑,比如微信,见代码注释/**具体分享操作@parampl
fly大梦想家
·
2021-06-26 23:17
iOS-
底层原理13-类的加载上
《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理12-应用程序加载》,之后了load_images中调用类,分类中的load方法,本文介绍类中属性,方法,协议,Categories,是如何加载到ro
一亩三分甜
·
2021-06-26 16:36
iOS-
底层原理 35:组件化(一)方案
iOS底层原理文章汇总本文主要讲解组件化的两种方案组件化组件化其实就是将模块单独抽离、分层,并指定模块间的通讯方式,从而实现解耦的一种方式,主要运用与团队开发为什么需要组件化?主要有以下四个原因1、模块间解耦2、模块重用3、提高团队协作开发效率4、单元测试当项目因为各种需求,越来越来时,如果此时的各个模块之间是互相调用,即你中有我,我中有你这种情况时,会造成高耦合的情况。一旦我们需要对某一块代码进
Style_月月
·
2021-06-26 16:14
iOS-
底层原理(16)-runtime之objc_msgSend详解
面试题1.讲一下OC的消息机制OC中的方法调用其实都是转成了objc_msgSend函数的调用,给receiver(方法调用者)发送了一条消息(selector方法名)objc_msgSend底层有3大阶段消息发送(当前类、父类中查找)动态方法解析消息转发2.什么是Runtime?平时项目中有用过么?OC是一门动态性比较强的编程语言,允许很多操作推迟到程序运行时再进行OC的动态性就是由Runtim
路飞_Luck
·
2021-06-26 14:55
iOS-
内存管理5-引用计数、__weak原理
一.引用计数1.引用计数存储在哪我们都知道,调用retain会让OC对象的引用计数+1,调用release会让OC对象的引用计数-1,那么引用计数存储在哪里呢?其实在isa存储信息分析中已经讲过了,在64bit中,引用计数可以直接存储在优化过的isa指针中,也可能存储在SideTable结构体中。如果引用计数不大(不大于19),会存储在isa的extra_rc中,其中rc是retainCount的
Imkata
·
2021-06-26 12:24
iOS-
底层原理22-多线程
《iOS底层原理文章汇总》1.进程和线程线程是进程的基本执行单元,一个进程的所有任务都在线程中执行*进程要想执行任务,必须得有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为主线程或UI线程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内通过“活动监视器”可以查看Mac系统中所开启的进程地址空间:同一进程的线程共享本进程的
一亩三分甜
·
2021-06-26 06:52
iOS-
后台任务相关
小摩丝.jpg研究一波吧.1.iOS后台任务2.NSTimer的基础用法以及程序挂起后NSTimer仍然可以在后台运行计时3.iOS语音提醒开发总结4.iOS后台任务5.iOS后台刷新介绍6.iOS保持App真后台运行7.iOS后台持续播放音乐8.实现后台推送播放自定义声音(类似于支付宝的收款提醒)9.iOS封装一个百度地图的定位类可以持续后台定位10.iOS自定义通知声音11.iOS断点+后台下
守护地中海的花
·
2021-06-26 06:26
iOS-
跨app传递图片及文件的实现分析
从微信分享图片说起直接上图(可以参考openshare这个框架)原理图第一步:把图片而二进制存入字典,其他参数也存入字典,字典外层再包一层以微信分配的appid为键的字典,二进制后存入粘贴板第二步:通过打开这个链接,可以跳转到微信.微信会验证此处的appid是否在其官网注册过,并且根据此appid从粘贴板拿到图片和参数,进行参数校验,而图片鉴黄则会在发送分享上传服务器后进行.这里需要注意:iOS1
后青春期的诗大喵
·
2021-06-26 05:32
iOS-
底层原理:LLVM编译流程 & Clang插件开发
本文主要是理解LLVM的编译流程以及clang插件的开发LLVMLLVM是架构编译器的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。对开发者保持开放,并兼容已有脚本传统编译器设计源码SourceCode+前端Frontend+优化器Optimizer+
恍然如梦_b700
·
2021-06-26 03:28
iOS-
自己的项目使用CocoaPods管理
参考链接:https://www.cnblogs.com/ludashi/p/8778945.html1.新建xcode项目2.找到项目目录:(快捷键:找到项目文件夹,control+C,进入到Terminal,control+V)cd/Users/zangmina/Desktop/zmn/zmnMasonryTest3.创建podfilevimPodfile4.编辑PodFile5.保存后,执行
tianlanse1213
·
2021-06-25 23:37
iOS 底层探索 文章汇总
1、对象底层:结构体+alloc分析
iOS-
底层探索01:alloc流程分析
iOS-
底层探索02:内存对齐分析
iOS-
底层探索03:isa底层结构分析2、对象的本质:isa+isa属性分析+类结构
iOS
differ_iOSER
·
2021-06-25 20:55
CALyer mask
参考地址:https://zsisme.gitbooks.io/
ios-
/content/chapter5/transforms.htmlCALayer有一个属性叫做mask,这个属性本身就是个CALayer
Maple_chang
·
2021-06-25 18:07
28-性能优化之面试题
CPU和GPU优化卡顿优化耗电优化APP启动优化安装包瘦身有关优化更深入详细的介绍,请看
iOS-
底层原理(28)-性能优化详细讲解三列表卡顿的原因可能有哪些?你平时是怎么优化的?
zysmoon
·
2021-06-25 16:22
iOS-
动画“编织年少的星梦”
看到掌上英雄联盟炫酷的动画,一直不知道怎么做的,后来看到他人的一篇文章,发现了这个好东西UIDynamicAnimator,才开启了新世界的大门。传送门:BottleStarAnimationanimate.gif
feedback1991
·
2021-06-25 14:05
蓝牙音频模块 蓝牙数据 BLE 数传 蓝牙双模模块 这几个到底有什么区别,如何选
一、简介平时,很多的客户,在寻找
蓝牙模块
类的产品时,往往被网上的一些概念,弄得不知所措,尤其之前没了解过蓝牙技术的工程师,更是傻傻分不清楚这些名词是什么意思。下面我们就来盘点一下网上常见的一些名词。
清月电子
·
2021-06-25 10:04
iOS-
简单创建MLFinder并学习
1:创建工程的目录结构1.1工程的目录结构工程目录结构.jpg1.2工程思维导图工程类图结构2:原理解释MLFinder的原理就是在viewcontroller返回时候(pop)检测当前的viewcontroller是否还有能力调用指定的willDealloc的方法。总结成一句话:利用runtime发送消息的时候,receiver可以为nil,如[nilmsg]。不会奔溃。3:运行流程运行流程图4
洲洲哥
·
2021-06-25 00:00
iOS-
第三方地址
广告QMUI(QMUI)AlipaySDK(支付宝)GPUImage(图片处理)SDWebImage(加载图片)魔窗(网页跳转)bugtags(bug管理)JSPath(热修复)JSPatch代码转换器FMDB(数据库)CYLTabBarController(标签控制器)CYLTabBarController使用QBPopupMenu(小窗口)AFNetworking(网络请求)TZImagePi
Alan龙马
·
2021-06-24 23:20
iOS-
底层原理 02:alloc & init & new 源码分析
在分析alloc源码之前,先来看看一下3个变量指针和内存地址区别:如图所示分别输出3个对象的内容、指针地址、对象地址,下图是打印结果如图所示结论:通过上图可以看出,可以发现三个对象的指针地址是不一致的;因此我们可以知道,alloc会去申请Person对象的一块内存空间,然后会用一个指针来指向这块申请的内存空间,即p1,而init不会对申请的内存空间做任何的操作,而是指向申请的同一片内存空间。%p-
致青春_bf42
·
2021-06-24 18:17
iOS-isa指向图&类结构(上)
NSObject@end@implementationYPPerson@end@interfaceYPTeacher:YPPerson@end@implementationYPTeacher@end在
iOS
Summit_yp
·
2021-06-24 14:12
iOS-
日历选择基于UIPickerView封装
八月湖水平,涵虚混太清。气蒸云梦泽,波撼岳阳城。欲济无舟楫,端居耻圣明。坐观垂钓者,徒有羡鱼情。---唐代·孟浩然《望洞庭湖赠张丞相》本文是参考OYDatePicker及DatePicker本文算是简写了OYDatePicker,因为项目中既对农历无需求也不是取生日(包含今天和之前),而是对日期的预约(比如三天后)。所以本文只是对其中日期部分跟作者不同UI是Follow的。感谢ohyeahhh的开
long弟弟
·
2021-06-24 10:53
iOS-
彻底解决makePerformSelector:警告问题
有时候我们在写代码过程中,想让系统帮我们去找方法时,需要用到makePerformSelector:,但这个方法会报警告:"performSelectormaycausealeakbecauseitsselectorisunknown"原因:在ARC模式下,运行时需要知道如何处理你正在调用的方法的返回值。这个返回值可以是任意值,如void,int,char,NSString,id等等。ARC通过头
hyeeyh
·
2021-06-24 10:34
iOS-
常用小技巧-01
一、去掉tableviewcell的左边多余的15像素1.可以改变tableviewcell的样式为self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;然后在自定义的cell下面加上一个UIview在底部,设置UIview的颜色为分割线的样式即可2.同样设置tableviewcell的样式为self.tableView.s
Mr_Bob_
·
2021-06-24 07:49
iOS-
监听多个UITextField的输入事件来限制字数
textfield输入监听.gif定制navigationBarself.navigationBar.tintColor=[GOVCommoncolorForKey:@"mainBlueColor"];self.navigationItem.title=@"实人认证";[self.navigationBarsetTitleTextAttributes:@{NSForegroundColorAttr
fly大梦想家
·
2021-06-24 02:42
iOS-
底层原理 01:源码探索方法
本文旨在介绍如何查找到所属的。有以下三种方法,以alloc为例介绍。1.跟流程alloc打断点方式Xcode左上角位置,如图所示:image.png在符号断点输入allocalloc断点在ViewController中的LGPerson处断点注意:在走到alloc断点之前,需要关闭上面新增的符号断点,原因是因为alloc的调用有很多,如果开启了就不能准确的定位到LGPerson的alloc方法。L
没有昵称的昵称没有
·
2021-06-23 18:36
iOS - 分类中同名方法的调用顺序(转)
iOS-
分类中同名方法的调用顺序https://blog.csdn.net/appleLg/article/details/79931742iOS类方法load和initialize详解https://
大佬的世界我不懂
·
2021-06-23 10:40
iOS-
底层原理 28:GCD 之 底层原理分析
iOS底层原理文章汇总本文是队列创建、同步/异步函数、单例、信号量以及调度组的底层原理分析队列创建在上一篇文章
iOS-
底层原理26:GCD之函数与队列中,我们理解了队列与函数,知道队列的创建时通过GCD
Style_月月
·
2021-06-23 10:55
蓝牙模块
解析
蓝牙模块
按照标准分有1.2,2.0,3.0,4.0,4.1,4.2,5.0;通常后者兼容前者产品;
蓝牙模块
根据应用和支持协议划分主要分为经典
蓝牙模块
(BT)和低功耗
蓝牙模块
(BLE);经典
蓝牙模块
(BT
硅传科技521
·
2021-06-23 09:01
iOS-
逆向05-选择和指针
《iOS底层原理文章汇总》1.cmp(Compare)比较指令 CMP把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。 一般CMP做完判断后会进行跳转,后面通常会跟上B指令!BL标号:跳转到标号处执行B.LT标号:比价结果是小于(lessthan),执行标号,否则不跳转B.LE标号:比较结果是小于等于(lessthanorqeualto),执行标号
一亩三分甜
·
2021-06-23 06:36
iOS-
底层原理28-Block底层原理
《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理27-锁和Block》介绍了NSLock,NSCondition,NSConditionLock,条件变量和条件锁的底层原理及三种类型Block,本文接着介绍
一亩三分甜
·
2021-06-22 22:41
iOS-
给View添加虚线
Quartz2D绘制-(void)addBorderToLayer2:(UIView*)view{CAShapeLayer*shapeLayer=[CAShapeLayerlayer];[shapeLayersetBounds:view.bounds];[shapeLayersetPosition:CGPointMake(CGRectGetWidth(view.frame)/2,CGRectGet
丶奔波儿灞
·
2021-06-22 20:29
【
iOS-
设计模式】创建型之单例模式
单例模式是一种很常见的设计模式,单例理解起来也很简单,就是不管如何访问始终只有一个实例化对象,定义全局共享的变量,如果对象是空则初始化一个对象,如果对象已经存在则使用已经实例化的对象。单例设计模式的作用是使得这个类的一个对象成为系统中的唯一实例,因此需要用一种唯一的方法去创建这个对象并返回这个对象的地址。下面有一张苹果官网的图片可以参考一下:单例模式定义一个Work类,项目共享同一个工作处理类,定
GSNICE
·
2021-06-22 20:17
iOS-
底层原理31-启动优化
《iOS底层原理文章汇总》本文主要介绍,程序的启动时间,虚拟内存和物理内存之间的映射,二进制重排优化启动时间的原理查看程序的启动时间添加环境变量EditScheme...->Arguments->+->DYLD_PRINT_STATISTICS,查看启动时间
[email protected]
![启动时间@2x.png](https://upload-images.jiansh
一亩三分甜
·
2021-06-22 18:18
iOS-
内存管理6-autorelease
一.转成C++代码我们都知道,在MRC中,当对象调用autorelease后,这个对象会在它所在的自动释放池结束后调用release方法,如下代码:intmain(intargc,constchar*argv[]){@autoreleasepool{MJPerson*person=[[[MJPersonalloc]init]autorelease];}return0;}person指针指向的对象会
Imkata
·
2021-06-22 15:30
iOS-
底层原理21-KVO(下)
iOS-
底层原理21-KVO(下)《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理20-KVO(上)》介绍到自定义KVO中观察到属性的值发生变化后,怎么通知到自定义的方法中1.自定义KVO,属性值变化后通知到自定义方法中来到
一亩三分甜
·
2021-06-22 13:07
iOS-
底层原理 33:内存管理(一)TaggedPointer/retain/release/dealloc/retainCount 底层分析
iOS底层原理文章汇总本文主要是分析内存管理中的内存管理方案,以及retain、retainCount、release、dealloc的底层源码分析ARC&MRCiOS中的内存管理方案,大致可以分为两类:MRC(手动内存管理)和ARC(自动内存管理)MRC在MRC时代,系统是通过对象的引用计数来判断一个是否销毁,有以下规则对象被创建时引用计数都为1当对象被其他指针引用时,需要手动调用[objcre
Style_月月
·
2021-06-22 13:35
iOS-
底层原理 32:启动优化(二)优化建议
iOS底层原理文章汇总启动启动的过程一般是指从用户点击app图标开始到AppDelegate的didFinishLaunching方法执行完成为止,其中,启动也分为冷启动和热启动冷启动:内存中不包含app相关数据的启动,一般我们可以通过重启手机来实现冷启动热启动:是指杀掉app进程后,数据仍然存在时的启动而我们这里所说的启动优化,一般是指冷启动情况下的,这种情况下的启动主要分为两部分:T1:pre
Style_月月
·
2021-06-22 12:02
iOS-
底层原理 34:界面优化方案
iOS底层原理文章汇总本文主要介绍界面卡顿的原理以及优化界面卡顿通常来说,计算机中的显示过程是下面这样的,通过CPU、GPU、显示器协同工作来将图片显示到屏幕上图像显示过程1、CPU计算好显示内容,提交至GPU2、GPU经过渲染完成后将渲染的结果放入FrameBuffer(帧缓存区)3、随后视频控制器会按照VSync信号逐行读取FrameBuffer的数据4、经过可能的数模转换传递给显示器进行显示
Style_月月
·
2021-06-22 11:39
iOS-
事件传递与响应
事件传递与响应的完整过程事件产生>UIUIApplication事件队列>主窗口通过hitTest方法找到最适合处理的视图>处理在产生一个事件时,系统会将该事件加入到一个由UIApplication管理的事件队列中,UIApplication会从事件队列中取出最前面的事件,将它传递给先发送事件给应用程序的主窗口.主窗口会调用hitTest方法寻找最适合的视图控件,找到后就会调用视图控件的touch
CDLOG
·
2021-06-22 06:52
新版的MWC飞控又准备打样了(2016-10-13 00:56:08)
把
蓝牙模块
也加上了,因为需要调试看看,为什么飞起来后会飘移。要是平稳飞行的话,顺便把去年写的安卓端遥控器代码也重写了。上图:真的是很薄。nrf24新版的控制板,比以前更小了点。
沧海一声笑的DIY宇宙
·
2021-06-22 02:58
iOS-
底层原理34-内存管理(下)和RunLoop
《iOS底层原理文章汇总》上一篇文章
iOS-
底层原理33-内存管理(上)介绍了内存管理,本文接着介绍内存管理(下)和RunLoopclassAutoreleasePoolPage:privateAutoreleasePoolPageData1
一亩三分甜
·
2021-06-22 02:24
iOS-
底层原理 31:LLVM编译流程 & Clang插件开发
iOS底层原理文章汇总本文主要是理解LLVM的编译流程以及clang插件的开发LLVMLLVM是架构编译器的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。对开发者保持开放,并兼容已有脚本传统编译器设计源码SourceCode+前端Frontend+优化
Style_月月
·
2021-06-21 23:02
iOS-
底层原理36-组件化
《iOS底层原理文章汇总》上一篇文章
iOS-
底层原理35-界面优化介绍了界面优化,本文介绍组件化1.为什么要组件化模块间解耦模块重用提高团队协作开发效率单元测试2.项目是否需要组件化项目较小,模块间交互简单
一亩三分甜
·
2021-06-21 18:55
iOS-
底层原理 09:类 & isa 经典面试题分析
iOS底层原理文章汇总本文的面试题主要涉及isa走位&继承关系&类结构相关的面试题以及针对面试题的分析【面试题】类存在几份?由于类的信息在内存中永远只存在一份,所以类对象只有一份【百度面试题】objc_object与对象的关系所有的对象都是以objc_object为模板继承过来的所有的对象是来自NSObject(OC),但是真正到底层的是一个objc_object(C/C++)的结构体类型【总结】
Style_月月
·
2021-06-21 18:18
iOS-
底层原理 29:锁的原理
iOS底层原理文章汇总本文主要介绍常见的锁,以及synchronized、NSLock、递归锁、条件锁的底层分析锁借鉴一张锁的性能数据对比图,如下所示锁性能对比可以看出,图中锁的性能从高到底依次是:OSSpinLock(自旋锁)->dispatch_semaphone(信号量)->pthread_mutex(互斥锁)->NSLock(互斥锁)->NSCondition(条件锁)->pthread_
Style_月月
·
2021-06-21 17:34
(转载)HC-05
蓝牙模块
使用教程[Arduino]
BlueToothHC-05
蓝牙模块
使用教程模块简介命令响应模式(AT模式)自动链接模式连接串口通信模块常用AT命令如下从机设置的AT代码主机设置的AT代码Arduino通信示例代码使用步骤示例:蓝牙控制小灯
二代红鱼
·
2021-06-21 16:42
iOS-
逆向04-判断&循环&选择
《iOS底层原理文章汇总》1.cmp(Compare)比较指令 CMP把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。 一般CMP做完判断后会进行跳转,后面通常会跟上B指令!BL标号:跳转到标号处执行B.LT标号:比较结果是小于,执行标号,否则不跳转B.LE标号:比较结果是小于等于,执行标号,否则不跳转B.GT标号:比较结果是大于(greatert
一亩三分甜
·
2021-06-21 14:49
iOS-
常见错误:SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2.
原因:这个项目是用之前的Swift版本做的,现在用最新版的Xcode打开之后,用的是最新版的Swift5版本进行编译,所以不兼容。IMG_2285.jpg如果这个项目只是演示的话,解决方法:点击主项目-BulidSetting-搜swift-SwiftLanguageVersion改成低版本屏幕快照2019-04-29下午3.44.16.png如果这个项目以后还要长期使用的话,解决方法:1.Mac
Lebus
·
2021-06-21 12:23
iOS-
底层原理09-msgSend消息查找流程&动态方法决议
《iOS底层原理文章汇总》如果在缓存中没查找到方法,之后的流程,CheckMiss和JumpMiss的流程一模一样CheckMiss-->__objc_msgSend_uncached.macroCheckMiss//missifbucket->sel==0.if$0==GETIMPcbzp9,LGetImpMiss.elseif$0==NORMALcbzp9,__objc_msgSend_unc
一亩三分甜
·
2021-06-21 12:44
微信小程序-蓝牙连接
1.0一般使用蓝牙功能肯定是想连接某一个蓝牙设备,所以需要知道这个蓝牙设备的名称,一般来说都是扫描二维码连接,那么当你扫描这个设备二维码的时候,就需要去初始化你手机上的
蓝牙模块
了初始化蓝牙设备initBlue
前端小攻略
·
2021-06-21 11:24
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
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
其他