IOS开发
ios开发,学习前言技术
Gaos的BLOG
Had I not seen the Sun
I could have borne the shade
But Light a newer Wilderness
My Wilderness has made
展开
-
iOS RACScheduler 使用详解
是 ReactiveCocoa 框架中的一个关键组件,用于在 iOS 开发中管理任务的并发执行。以下是如何详细使用的指南,以 Markdown 格式展示。原创 2024-04-21 13:00:00 · 516 阅读 · 1 评论 -
IOS-iphone端WKWebView开发者模式
启动 APP ,加载 WKWebView 后即可在Mac端看到 H5页面。这时即可连接手机通过Safari中进行调试,Safari 开发中看到设备,可以查看当前的 HTML 代码,JS 代码,网络情况等。Mac端Safari显示开发菜单: Safari 浏览器 -> 偏好设置 -> 高级 -> 勾选在菜单中显示“开发”设置。手机端开启Web 检查器:设置 -> 通用 -> Safari -> 高级 -> Web 检查器。WKWebView调试App内嵌网页。原创 2022-12-17 15:36:16 · 1099 阅读 · 2 评论 -
ios- Gesture
手势优先级requireGestureRecognizerToFail,创建另一个有联系的手势识别器,只要另一个手势状态为。这个手势才会被相应。如果另一个手势正在被响应,那么这个手势不会被响应。原创 2022-11-30 14:18:01 · 874 阅读 · 0 评论 -
IOS- UICollectionView
header 注册 [_collectionView registerClass:[MyCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];设置header-(UICollectionReusableView *)collectionView:(UICollectionView *)c原创 2022-11-28 18:38:12 · 347 阅读 · 1 评论 -
iOS开发——组件化之Cocoapods私有库详解 lib
前言随着公司业务的不断发展,团队不断壮大的同时,项目也随之臃肿起来,如何保障团队协作的高效,自然的想到了组件化这个话题。下面总结下本人的梳理和思考。组件化 为什么我们需要组件化 项目模块间的解耦、模块实现可重用、提升团队成员之间团队之间的协作开发效率、更方便单元测试。 并不是所有的项目都适合组件化 如果你的项目较小,模块之间交互简单,耦合很少;模块没有被外部模块引用,只是一个单独的小模块;模块不需要重用,代码也很少被修改;团队规模很小。那么,你对项目就没有必要做组件化。如果你转载 2021-11-13 17:22:13 · 619 阅读 · 0 评论 -
IOS-UICollectionView
minimumLineSpacing 跟滑动方向一致的距离minimumInteritemSpacing 跟滑动方向垂直的距离layout.sectionInset = UIEdgeInsetsMake(上, 左 下, 右 );垂直距离举例section的上下边界为上下section左右边界为左右item的上下间距为minimumInteritemSpacingitem的左右间距为 MAX( MIN(左右) 与 minimumLineSpacing)最大值...原创 2021-07-16 15:46:02 · 197 阅读 · 0 评论 -
ios-collectionview三种排版方式
元素流排版//// LMJElementsFlowLayout.m//// Created by apple on 17/4/19.// Copyright © 2017年 NJHu. All rights reserved.//#import "LMJElementsFlowLayout.h"#define LMJXX(x) floorf(x)#define LMJXS(s) ceilf(s)static const CGFloat LMJ_XMargin_ = 10;原创 2021-06-30 14:35:25 · 1090 阅读 · 0 评论 -
引用c++ .cpp 文件时候pch文件报错
今天碰到一个问题:C OC C++文件在项目中混编时1、出现could not build module foundation错误2、NSObjCRuntime.h NSObject.h NSZone.h 将会报出编译异常。解决:1 1 2 3 4 5 6 7 8 9 项目pch文件中,#import的头文件做如下操作 // 表示宏内引用的文件确保只被使用 Objecti...原创 2021-03-09 10:47:11 · 372 阅读 · 0 评论 -
Agora声网 互动直播,pk,自定义渲染,路旁推流, 水晶球
//// LiveView.m// DANSER//// Created by gaos on 2021/02/02.// Copyright © 2021年 TianGe. All rights reserved.//#import "DSRAnchorPKLiveView.h"#import <AgoraRtcEngineKit/AgoraRtcEngineKit.h>#import "TGCamera.h"#import "TGOpenGLView.h"...原创 2021-02-26 17:29:31 · 2044 阅读 · 1 评论 -
ios- UIImageView 序列帧实现gif图 直播送礼效果 图片拉伸
UIImageView 或者CALayer +定时器类1.使用 【 UIImageimageWithContentsOfFile】从磁盘映射方式加载图片数据流(创建了一个文件映射数据, 图片文件既没有真正被加载到内存, 更没有被解码成位图的形式可供Core Animation渲染)2.讲UIImage 赋值给 UIImageView这个过程,隐式的CATransaction(事物)会捕获到imageView图层树的变化,并在下一个runloop到来时提交事务,处理过程中包涵1.分配缓冲区管理文...原创 2020-09-04 15:16:57 · 515 阅读 · 0 评论 -
ios-appstroe alpha通道
原创 2020-08-10 15:29:04 · 418 阅读 · 0 评论 -
IOS-appstore 修改主语言
1.首先添加你所要设置为主语言的本地化语言,2.该本地化的语言所使用的商店展示截图必须是重新上传的主要语言的作用就是,如果一个在俄罗斯的人在AppStore下载app,下载界面显示的是中文,但是我们的期望是除了中国以外都显示英语,所以最好把主要语言设为英语。*默认添加的新语言会以当前的主语言共享商店展示图片,这样状态是不能设置主语言的,必需重新上传添加新的主语言的商店展示图片,即使图片一毛一样也要重新上传,保证该语言版本的展示图片是独立存在的,因为主语言可以编辑,编辑意味着可以删除,(YY 假如转载 2020-08-10 15:26:28 · 2057 阅读 · 0 评论 -
ios-TestFlight 沙盒测试 蒲公英 fir appuploader
沙盒不需要真实邮件就可以测试TestFlight 需要添加测试员,,如果没有收到邮件,选中构建版本-ios-版本号-添加独立测试员-收到打开兑换码的邮件,app中登录到testflight,填写兑换码前言在iOS 8中,苹果发布了一个叫做TestFlight的新玩意,用于将Beta测试流水化。此前你可能听说过这个东西,因为TestFlight作为一个独立的测试平台已经有些年头了。不过在今年二月份的时候TestFlight的开发商Burstly被苹果收购,于是在之后公开发行的Xcode 6和.转载 2020-08-07 16:56:15 · 1243 阅读 · 0 评论 -
IOS- UIWebview WKWebView New apps that use UIWebView
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn moregrep -r UIWebView .目前老版的分享sdk中会包括更新到最新原创 2020-08-04 10:26:30 · 365 阅读 · 0 评论 -
IOS- LXPlayerLive GPUImage LFLiveKit
https://github.com/SoftProgramLX/LXPlayerLive问题nginx第二次打开时候ginx: [alert] could not open error log file: open() "/usr/local/var/log/nginx/error.log" failed (13: Permission denied)2020/07/23 18:07:44 [notice] 27087#0: signal process started2020/.原创 2020-07-23 18:59:16 · 250 阅读 · 0 评论 -
IOS-GPUImage 美颜 滤镜 水印 分段录制
//// RecordVideoViewController.m// AVStream//// Created by gaoshuang on 2018/4/26.// Copyright © 2018年 gaoshuang . All rights reserved.//#import "RecordVideoViewController.h"#import "AVUtil.h"#define DEFAULT_VIDEO_SIZE (CGSizeMake(576.,1024.原创 2020-07-22 17:35:50 · 661 阅读 · 0 评论 -
关于 iOS离屏渲染的深入研究(进阶篇)
在平时的iOS面试中,我们经常会考察有关离屏渲染(Offscreen rendering)的知识点。一般来说,绝大多数人都能答出“圆角、mask、阴影会触发离屏渲染”,但是也仅止于此。如果再问得深入哪怕一点点,比如: 离屏渲染是在哪一步进行的?为什么? 设置cornerRadius一定会触发离屏渲染吗? 90%的候选人都没法非常确定地说出答案。作为一个客户端工程师,把控渲染性能是最关键、最独到的技术要点之一,如果仅仅了解表面知识,到了实际应用时往往会失之毫厘谬以千里,无法得到预期的效转载 2020-07-21 10:14:03 · 379 阅读 · 0 评论 -
IOS-小工具
目前使用到的两个小工具https://github.com/HDB-Li/LLDebugToolhttps://github.com/xiamoweinuan/AMLeaksFinder NSString* strVersion =[[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"]; NSString* strbuild =[[NSBundle mainBundle] infoDictionary]原创 2020-07-03 11:53:29 · 260 阅读 · 1 评论 -
IOS-NSBundle
一般我们从bundle中获取一张图片,可以有这样的获取思路:1)获取主bundle 2)获取自定义bundle 3)获取自定义bundle中的资源 //主bundle,也就是可执行的工程的bundleNSBundle *mainBundle = [NSBundle mainBundle];//NSBundle *mainBundle = [NSBundle bundleForClass:[self class]];//放在主工程中的自定义bundleNSString *myBundl原创 2020-06-23 10:32:05 · 370 阅读 · 1 评论 -
iOS面试题:Socket原理
1、套接字(socket)概念套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。应 用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序...转载 2019-12-27 11:19:53 · 1139 阅读 · 0 评论 -
图片的解压缩到渲染过程
一.图像从文件到屏幕过程通常计算机在显示是CPU与GPU协同合作完成一次渲染.接下来我们了解一下CPU/GPU等在这样一次渲染过程中,具体的分工是什么?CPU: 计算视图frame,图片解码,需要绘制纹理图片通过数据总线交给GPU GPU: 纹理混合,顶点变换与计算,像素点的填充计算,渲染到帧缓冲区。 时钟信号:垂直同步信号V-Sync / 水平同步信号H-Sync。 iOS设备...转载 2019-12-26 11:00:36 · 377 阅读 · 0 评论 -
深入理解RunLoop
深入理解RunLoop由ibireme| 2015-05-18 |iOS,技术RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。IndexRunLoop 的...转载 2019-12-24 17:25:27 · 176 阅读 · 0 评论 -
RunLoop剖析
一、RunLoop概念RunLoop是通过内部维护的事件循环(Event Loop)来对事件/消息进行管理的一个对象。1、没有消息处理时,休眠已避免资源占用,由用户态切换到内核态(CPU-内核态和用户态)2、有消息需要处理时,立刻被唤醒,由内核态切换到用户态为什么main函数不会退出?int main(int argc, char * argv[]) { @aut...转载 2019-12-24 14:32:56 · 175 阅读 · 0 评论 -
IOS- 静态库制作
原理基本流程什么网上很多老郏桌面新建文件夹 终端cdlipo -create 2拖进去3拖进去 -output TestFramework (看好空格)将生成的TestFramework替换2或3,拖进工程就可以测试了...原创 2019-12-11 16:07:39 · 144 阅读 · 0 评论 -
认识CALayer 离屏渲染 缘由 优化
layer和view的关系开始开发都是从view开始,而且很长一段时间可能都只认识到view,而只会在某些角落看见layer,比如圆角,比如coreAnimation动画,还有绘制内容时也使用CALayer,所以对于layer的首要疑问肯定是:这货跟view到底什么关系?出自 WWDC 2012- iOS App Performance- Graphics and Animations...转载 2019-12-09 16:31:20 · 361 阅读 · 0 评论 -
iOS 开发--怎样高效的使用多线程
写在前面多线程技术在移动端开发中应用广泛,GCD 让 iOS 开发者能轻易的使用多线程,然而这并不意味着代码就一定高效和可靠。深入理解其原理并经常结合业务思考,才能在有限的线程控制 API 中最大化发挥并发编程的能力,也能轻易的察觉到代码可能存在的安全问题并优雅的解决它。本文不会讲解 GCD 和各种“锁”的基本用法,而是结合操作系统的一些知识和笔者的认识讲述偏“思维”的东西,当然,最终也是...转载 2019-12-09 15:47:36 · 147 阅读 · 0 评论 -
谈一谈 iOS 的锁
收录:原文地址翻看目前关于 iOS 开发锁的文章,大部分都起源于 ibireme 的 《不再安全的 OSSpinLock》,我在看文章的时候有一些疑惑。这次主要想解决这些疑问: 锁是什么? 为什么要有锁? 锁的分类问题 为什么 OSSpinLock 不安全? 解决自旋锁不安全问题有几种方式 为什么换用其它的锁,可以解决 OSSpinLoc...转载 2019-12-09 15:03:45 · 141 阅读 · 0 评论 -
iOS面试题:谈谈你对事件的传递链和响应链的理解
一:响应者链UIResponser包括了各种Touch message 的处理,比如开始,移动,停止等等。常见的 UIResponser 有 UIView及子类,UIViController,APPDelegate,UIApplication等等。回到响应链,响应链是由UIResponser组成的,那么是按照哪种规则形成的。 A: 程序启动UIApplication会生成一个单例,并会关联...转载 2019-12-09 14:30:44 · 665 阅读 · 0 评论 -
索引
socket 连接和 Http 连接的区别iOS面试题:谈谈你对事件的传递链和响应链的理解谈一谈 iOS 的锁iOS 开发--怎样高效的使用多线程认识CALayer 离屏渲染 缘由 优化...原创 2019-12-09 14:03:07 · 111 阅读 · 0 评论 -
socket 连接和 Http 连接的区别
http 是基于 socket 之上的。socket 是一套完整的 tcp,udp协议的接口。HTTP协议:简单对象访问协议,对应于应用层,HTTP协议是基于TCP连接的。 tcp协议:对应于传输层。 ip协议:对应于网络层。 TCP/IP是传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。Socket是对TCP/IP 协议的封装,它本...转载 2019-12-09 14:01:49 · 409 阅读 · 1 评论 -
iOS 数据安全、数据加密传输
近期接到一个新需求:APP企业版需要接入热更新功能。热更新需要下发补丁脚本, 脚本下发过程中需要保证脚本传输安全,且需要避免中间人攻击。需要用到数据加密传输方面的知识,以下是我设计的加密解密流程: 0. 将脚本 base64 编码,得到编码后的文本 encodedScript; 1. 将encodedScript使用 AES 算法 加密,得到密文 cipherScript;...转载 2019-12-04 15:37:37 · 258 阅读 · 0 评论 -
IOS - app账号appstoreconnect信息,苹果审核,上传确认项,被拒记录 解决方案中心 回复 申诉 超级签 4.3
账号被关联标记14天后,app有些会被删除,有些还可以下载使用,有些devloper下的Accout是申诉页面有些还可以进去配置证书和添加设备,问题是能持续多长时间, 苹果定期有复查的功能,账号最好不要动,越动没得越快。很多超级签使用的就是被标记的账号,掉签的原因,大部分就是账号突然没了。中文回复了很多遍不见效果,用英文回复了一下就好了,格式,转发对方回复的邮件,抄送对方和appreview@apple.com。8.付费陪伴 指引1.1 -安全-不良内容 指引5.0 -法律。2.打包机器和上传被关联。原创 2019-11-19 15:00:13 · 9443 阅读 · 1 评论 -
IOS - 内测分发 adhoc
iOS内测分发背景:我写博客一般都会写背景,因为我觉得光写某个技术点没有意义,技术最终都是为业务服务,因此我喜欢交代自己的使用场景,基于什么原因,我做过哪些常识,为什么最终这么做,这么做能解决我的什么问题….我们是一个小业务部,而且是传统行业转型互联网,业务部内还处于"史前洪荒"的状况,各种现在流行的东西都没有使用,移动端更是如此,开发迭代出的app都是靠微信/内部邮件转发来转发去,i...转载 2019-11-14 17:28:23 · 2477 阅读 · 0 评论 -
IOS- 11 Assets.xcassets方法添加LaunchImage Launch Images Source去掉了
1.在LaunchScreen.storyboard中拖拽imageView并设置约束,取消勾选右侧Use as launch Screen2.置空路径Launch Screen File3.最后在工程targets--Build Settings搜索Asset Catalog Launch Image Set Name然后设置Launch Image 就可以了从2020年4...原创 2019-10-29 14:33:50 · 3504 阅读 · 0 评论 -
IOS -推送 push相关
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {errro 中提示未找到应用程序的“aps-environment”的授权字符串需要勾选 signing& Capabilities 中 Remote ...原创 2019-10-12 20:34:19 · 205 阅读 · 0 评论 -
IOS- 得到系统版本
-(void)getSystemInfo{ size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = (char*)malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSStri原创 2015-07-28 17:25:03 · 601 阅读 · 0 评论 -
IOS-马甲包 混淆 注意事项
1. ipa包特征:工程配置(KLGenerateSpamCode) 修改工程名 修改文件夹以及类名前缀 代码类:(ChaosTool) 已有代码的混淆(改类名、改函数名,以及函数顺序) 审核时tab页面需要较大变化,做开关 手动添加或者删除代码中的注释和空行 生成多余.h.m文件以及文件夹 生成多余的变量/函数/属性以及实现 资源类:(ImageO...原创 2019-04-16 17:44:40 · 1604 阅读 · 0 评论 -
IOS- 判断系统首选语言是中文英文
iOS7zh-Hans: 简体zh-Hant: 繁体iOS8zh-Hans: 简体zh-Hant: 繁体zh-HK: 香港繁体(增加)iOS9zh-Hans-CN: 简体(改变)zh-Hant-CN: 繁体(改变)zh-HK: 香港繁体zh-TW: 台湾繁体(增加)iOS 10zh-Hans-CN 简体yue-Hans-CN 粤语 简体 (增加)yue-...原创 2019-03-14 15:36:23 · 1942 阅读 · 0 评论 -
IOS- Communicating with Apple 打包慢问题
有时候,打包Archive的时候,一直提示Communicating with Apple而完成不了的情况Xcode,Archive成功后Organizer包内容找到你生成的XXX.app文件,或者在Xcode中Products下找到XXX.app,复制到一个空文件夹中,进行压缩,最后修改文件名为Payload.ipa,点击使用ipa,就可以了。...原创 2019-02-28 18:07:33 · 1893 阅读 · 0 评论 -
IOS-GCDQueue使用
//// ViewController.m// GCD//// Created by YouXianMing on 15/10/19.// Copyright © 2015年 ZiPeiYi. All rights reserved.//#import "ViewController.h"#import "GCD.h"@interface ViewControlle...原创 2019-02-21 17:25:32 · 269 阅读 · 0 评论