IOS
文章平均质量分 57
书弋江山
和光同尘,与时舒卷;戢鳞潜翼,思属风云,漆黑如夜,孑然踽行
展开
-
swift 关于闭包值捕获问题
闭包在其定义的上下文变量中捕获常量和变量,即使这些常量和变量的原域已经不存在了,闭包仍然可以在闭包函数体内引用和修改这些值。问题探究,到底原域消失之后,这些变量是复制了一份在闭包引用内,还是之前变量或者常量都复用func test(){ let myincr = increatmFunStr(Other: "BOB") print(myincr()) print(myincr()) print(myincr()) print(myincr(原创 2020-09-03 15:14:58 · 510 阅读 · 0 评论 -
Swift 跳转到地图导航
1,生成schemes2 实现//地图类型enum MapForm { enum MapURI:String { //百度 case baiduMap = "baidumap://" //高德 case gaodeMap = "iosamap://" //苹果 case appleMap = "http://maps.apple.com/" //谷歌 case go原创 2020-06-08 17:59:58 · 905 阅读 · 0 评论 -
IOS 生成图片数字字母验证
直接上代码,注释很详细#import "CaptchaView.h"#define kRandomColor [UIColor colorWithRed:arc4random() % 256 / 256.0 green:arc4random() % 256 / 256.0 blue:arc4random() % 256 / 256.0 alpha:1.0];//#define kRandomCol原创 2017-08-24 11:02:10 · 445 阅读 · 0 评论 -
ARC下用块(block)的循环引用问题样例探究
ARC下用块(block)的循环引用问题样例探究循环引用的原因众所周知,ARC下用block会产生循环引用的问题,造成泄露的原因是啥呢?最简单的例子,如下面代码:123[self.teacher requestData:^(NSData *data) { self.name = @"case";转载 2018-01-24 19:28:25 · 285 阅读 · 0 评论 -
IOS 视频直播常用集成
大神文章 pod集成步骤 ijkplayer B站开源播放器 视频添加背景音乐转载 2018-02-25 15:01:53 · 747 阅读 · 0 评论 -
iOS之使用CoreImage进行人脸识别
参考文章主要的图像处理函数#pragma mark - 识别人脸- (void)faceDetectWithImage:(UIImage *)image { for (UIView *view in _imageView.subviews) { [view removeFromSuperview]; } // 图像识别能力:可以在CIDetec...转载 2018-02-27 11:12:01 · 651 阅读 · 1 评论 -
IOS 分类结合RunTime实例
C本身是一个静态语言,数据类型和代码运行的结果都是在编译的时候确定的。而Objective-C的runtime机制赋予了C一个新的活力,即运行时机制。这也就是说,OC代码或者C代码在编译过后的机器码并不能得出运行结果。而这个结果需要在运行的时候才能获得,这样就给了我们一个新的操纵代码的空间,也就是运行时。在OC中,运行时是一段提前写完的一个模块的代码。可以这么说,OC的运行时就是这段代码赋予的。 ...转载 2018-03-07 18:12:42 · 390 阅读 · 0 评论 -
IOS GPUImage 实现视频美颜相关
可以使用pod导入,也可以集成导入pod GPUImage不管哪一种导入方式都要添加CoreVideoCoreMediaOpenGLesQuartCorelibc++这几个系统库//滤镜展示列表#import "GPUImageBrightnessFilter.h" //亮度#import "GPUImageExposureFi...转载 2018-03-06 17:22:52 · 949 阅读 · 0 评论 -
IOS 自动化打包(shell)
最近进了一家游戏公司,工程项目比较大,每次修改的测试包不可能手动生成,主要是太耗时间了,就研究了一下,shell 脚本的自动化打包工具使用,shell脚本还是比较简单的,当然你也可以使用python 来写脚本,这个要深入研究#xcodebuild 自动化打包# 工程路径project_path="/Users/systudiosy/Desktop/BobNetworking"proj...原创 2018-04-08 19:43:13 · 532 阅读 · 0 评论 -
IOS sqlite3数据库的使用
打开和创建数据库-(void)openFileWith:(NSString*)tableName{ NSArray *array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path=[array objectAtIndex:0]; NS原创 2017-01-13 10:01:02 · 610 阅读 · 0 评论 -
iOS invalid bitcode signature等常见错误
关于 invalid bitcode signature 今天拾起了一个老项目,调试了一下,出现如下错误。惯例Google了一下,搜索的关键字为:invalid bitcode signature,解决的方案很多,如下所示:invalid bitcode signature解决方案1.Clean重启首先要做的就是网管的终极套路,关机重启,所以我们遇到问题当然就是Clea...原创 2017-08-09 18:20:12 · 42209 阅读 · 4 评论 -
IOS 字符编码转码
很多时候软件读取的中文网页编码集是gb2312GB2312编码格式NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);有时候会遇到未知编码可能GB2312 或者UTF8编码 如果GB2312强转utf8 会出现 转出的字符串为 nil;如果转”成功”了原创 2017-05-04 10:37:40 · 990 阅读 · 0 评论 -
Tutk P2P的原理和常见的实现方式
最近在做tutk P2p相关公司的IP摄像头项目,然后看了一下实现原理,然后改一了一篇文章来记录一下,天下文章一大抄,天下代码也是一样的,下面就是TUTK 的Demo tutk实现的Demo1.简介 当今互联网到处存在着一些中间件(MIddleBoxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信。这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还有原创 2017-12-12 09:25:11 · 22389 阅读 · 1 评论 -
ffmpeg YUV420P视频帧旋转
//逆时针旋转90 度-(void)frame_rotate_90WithSorrce:(AVFrame *)src des:(AVFrame*)des{ int n = 0; int hw = src->width>>1; int hh = src->height>>1; int size = src->width * src->height; int转载 2017-12-05 18:47:02 · 1794 阅读 · 0 评论 -
IOS 硬件GPU解码
导入框架和头文件#import <VideoToolbox/VideoToolbox.h>{//声明的全局变量 NSData *spsData ; NSData *ppsData; uint8_t pFrameData[BUFFER_SIZE]; CMVideoFormatDescriptionRef videoFormatDescription ; VTDec原创 2017-12-05 18:57:45 · 927 阅读 · 0 评论 -
IOS RunLoop详情
实例化讲解RunLoop之前看过很多有关RunLoop的文章,其中要么是主要介绍RunLoop的基本概念,要么是主要讲解RunLoop的底层原理,很少用真正的实例来讲解RunLoop的,这其中有大部分原因是由于大家在项目中很少能用到RunLoop吧。基于这种原因,本文中将用很少的篇幅来对基础内容做以介绍,然后主要利用实例来加深大家对RunLoop的理解,本文中的代码已经上传GitHub,大家可以转载 2018-01-21 18:29:28 · 363 阅读 · 0 评论 -
IOS 使用python生成垃圾代码(马甲包)
#!/usr/bin/env python# _*_ coding:utf-8 _*_#第一步:首先生成一个500位的数组 驼峰类型的元素 用作文件名 eg:AsdfdfGsdimport randomimport stringfirst = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"second = "abcdefghijklmnopqrstuvwxyz"numb...转载 2018-04-08 20:32:41 · 3450 阅读 · 1 评论 -
IOS 游戏渠道SDK 抽象工程封装
iOS 游戏渠道SDK 抽象工程封装(上) 一款手机游戏,要是想挣钱,接入渠道SDK是很重要滴。但是渠道SDK有那么多家,每一家的接口也不一样,那么是否需要每一家渠道SDK都来接入一次呢?游戏的研发同学,每次想到这边,都表示一个头,两个大。那么为了给研发的同学减轻负担,让他们专心搞研发,给所有渠道SDK封装一个抽象工程,是很有必要的一件事情。这样,游戏接入一次抽象工程就OK了,到时候要接入渠...转载 2018-04-10 09:43:18 · 1825 阅读 · 0 评论 -
python 自动化生成IOS的图标
每次上架之前都要生成十几个图片感觉无聊麻烦,考虑使用脚本处理 脚本使用python 和一部分shell 处理的,python部分主要是使用PIL库处理图片,和调用shell脚本,shell 主要是操作文件#coding=utf-8import os ,threadingfrom PIL import Imageimport subprocessimport jsonclass Im...原创 2018-05-12 14:33:00 · 578 阅读 · 0 评论 -
IOS 使用itms-services协议,服务端安装应用
最近开发的一个IOS项目需要不通过将APP发布到Appstore上直接安装到客户手机上,本来觉得苹果这么封闭的流程,应该不可以实现的吧,结果竟然还正能实现,这边主要是利用苹果自家的浏览器safari和itms-services协议,下面介绍下主要步骤和实现过程中遇到的问题。通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一...原创 2018-09-21 16:33:36 · 10048 阅读 · 3 评论 -
IOS 使用NSURLProtocol 拦截网络请求实现缓存
最近项目需要实现一个WKWebview的缓存功能,然后想到通过拦截http/https请求,然后通过url字符串的MD5串来作为“Key” 存储和读取缓存,缓存数据使用YYCache 这个缓存框架还是很不错的,有通过链表实现的内存缓存,和数据库以及文件实现的磁盘缓存,这个就不多说了,具体可以github 上看源码,今天主要讲通过NSURLProtocol来实现拦截Http/https 中间可能牵涉...原创 2018-10-29 19:51:27 · 2300 阅读 · 0 评论 -
使用python的mod_pbxproj 自动化 修改Xcode 工程
目前就先贴代码# coding=utf-8from mod_pbxproj import XcodeProjectimport osfrom foundation import *from mod_pbxproj import *import plistlibfrom pbxproj.pbxextensions import FileOptions# 修改工程def ch...原创 2018-11-30 14:05:39 · 5960 阅读 · 0 评论 -
Mac Security工具使用总结
Mac Security工具使用总结Security是Mac系统中钥匙串和安全模块的命令行管理工具,(图形化工具为Keychain Access.app)。钥匙串(Keychain)实质上就是一个用于存放证书、密钥、密码等安全认证实体的仓库,在计算机中保存为一个.keychain的文件,默认存放在以下目录中(使用这几个目录中的钥匙串时不需要写路径,直接用文件名即可,Security工具会自动搜索...转载 2018-12-28 15:17:58 · 3112 阅读 · 0 评论 -
IOS 工程文件project.pbxproj小结
工程文件project.pbxproj小结转载 2019-01-10 17:44:13 · 826 阅读 · 0 评论 -
IOS keychain 使用
最近项目赶得紧先打个Tag参考文章转载 2019-03-30 00:55:43 · 2040 阅读 · 0 评论 -
IOS 指纹识别
指纹识别必须ios8 以上真机,面部识别据说同一套API 没有支持面部识别的机器,没有测试,直接贴代码了,注释比较清晰,关键点在于业务逻辑,由于指纹识别只是类似授权自动登录,所以那些账户密码。必须存储,在授权成功自动登录,存储密码可参考keychainZbTouchManager.h//// ZbTouchManager.h// TestFFmpegDemo//// Creat...原创 2019-04-28 17:22:43 · 496 阅读 · 0 评论 -
FFmpeg 解码视频流实现yuv播放
参考文章雷神文章 FFMPEG–裸码流解码AVCodec 最简单的基于FFmpeg的libswscale的示例(YUV转RGB) 初始化解码器相关变量-(void)initDecoder{ if (decodeFrame) { return; } int codec_id = AV_CODEC_ID_H264; pCodec = avcodec_原创 2017-12-01 18:18:03 · 1944 阅读 · 0 评论 -
ArcGIS 关于三维立体地图 简单使用,里面的资源就在 arcgis 的demo里面有
import UIKitimport ArcGISclass MapPlanVc: UIViewController { func startTransportData(spoint : SpacePoint) { DispatchQueue.main.async { self.planGraphic?.geometry = spoint.po...原创 2019-07-15 11:47:52 · 1192 阅读 · 0 评论 -
IOS 关于web支付无法返回APP解决方案
使用WKWebview支付,使用的支付宝和微信支付,由服务器下单,app端拿到服务端下单数据加载,微信支付下单成功返回的是一个链接,支付宝支付下单成功返回的是一个html样式,加载方式也是不同的//拿到服务端下单数据之后 dispatch_async(dispatch_get_main_queue(), ^{ if (weakSelf.paytype == WeChatPay...原创 2018-09-12 19:26:00 · 1600 阅读 · 0 评论 -
iOS 运行发现,view随着屏幕的变大整体放大的问题
记录一下工程中遇到的bug,项目基本完成时候,测试时候遇到在iphone6s plus 上字体和视图都被放大情况,这个问题我查看了自己的设置发现没问题,然后怀疑工程设置问题,后来看到下面文章解决遇到的问题,真是个奇葩问题,不过还好解决了 iOS 运行发现,view随着屏幕的变大整体放大的问题...转载 2018-09-15 16:56:23 · 1236 阅读 · 0 评论 -
IOS 字典和对象互转
#import <objc/runtime.h>//将字典转成当前对象- (void)convert:(NSDictionary*)dataSource{ for (NSString *key in [dataSource allKeys]) { if ([[self propertyKeys] containsObject:key]) { ...原创 2018-05-24 20:12:37 · 1988 阅读 · 0 评论 -
IOS 上层视图遮住底层按钮导致下层视图无法点击
重写UIView的- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event;方法 就拿下面代码为例:如果上层视图是window 和 非按钮(uibutton 继承自UIControl )就允许点击,就是自己限制自己的上层视图或者窗体那些控件可以点击,那些不可点击,也就是将点击事件截取了,自己来决定是否下往下层传递,如果是nil 就允...原创 2018-07-02 22:16:49 · 3866 阅读 · 0 评论 -
ios WKWebView Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified
最近在使用WKwebview(UIWebView 占用内存太大,而且还有内存泄漏问题)加载一个服务端的网页时候遇到这个问题,首先你要看一下你的Htttps 和Http 设置如下 发现没用,网上找了好多资料,大部分说先 [self.webView loadRequest:request]; 然后在addSubView 我发现也没用,后来又设置NSHTTPCookie 如下NSMutabl...原创 2018-07-16 17:01:55 · 33783 阅读 · 6 评论 -
IOS 关于支付宝web支付不同实现
由于支付宝web支付返回的是一个带请求链接的表单,所以直接加载html形式,不要使用loadrequest [self.webView loadHTMLString:self.requestUrlStrs baseURL:nil];使用WKwebView方式遵守WKNavigationDelegate协议-(void)webView:(WKWebView *)webView decid...原创 2018-07-11 21:28:39 · 750 阅读 · 0 评论 -
IOS 调试小工具显示内存和CPU 使用率
关于网络上下行的有点问题,不准确 CPU 和内存 基本是准确的,有需求的可以添加FPS 相关的#import <Foundation/Foundation.h>@interface SyStemSourceTool : NSObject+(instancetype)sharedInstance;-(void)startShowSystemState;@end#i...原创 2018-07-12 14:48:18 · 2247 阅读 · 0 评论 -
IOS 生成包含第三方的framework 和 测试Demo
生成包含Framework和Framework测试Demo的工程 包含第三方静态库 生成包含第三方的静态库 -ObjC,-all_load的作用转载 2018-07-06 09:03:45 · 1499 阅读 · 0 评论 -
iOS解决两个静态库的冲突 duplicate symbol
场景:解决TencentOpenAPI.framework与ZbarSDK中 _base64_encode 函数的冲突后来在网络上搜寻,删除掉 Other Linker Flag 的 -all_load 就可以解决静态库冲突的问题,但是这样做的话,会使一些外部的静态库,使用objc扩展函数(catagory)的方法失效。例如BaiduMapApi如果是有些库使用到了扩展函数(ca...转载 2018-07-26 20:38:02 · 827 阅读 · 0 评论 -
IOS 使用SCYCacheURLProtocol和YYCache做Web缓存
一:前言:项目中整个一tab页因为需求变成了加载webView,没网情况下会一片白。。很多APP无网显示的是一张图片,笔者强迫症,坚决做到最好的用户体验,于是缓存了整个webview; 1. 想通过加载HTMLSting字符串缓存webView是不可行, [self.webView loadHTMLString:HTMLSting baseURL:nil];想走这条路的哥们这里说下,肯定是不行的...转载 2018-08-01 20:23:59 · 496 阅读 · 0 评论 -
IOS 使用反射进行游戏聚合多渠道
通过传入的字符串来获取类名和函数名调用相应的函数,这样做又一个好处是可以不导入相应的文件,而且完成编译//调用类函数Class cls = NSClassFromString(@&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;John&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;); SEL sel0 = NSSelectorFromString(@&原创 2018-08-20 11:47:58 · 530 阅读 · 0 评论 -
iOS 同时重写父类属性的setter和getter时候报错
平时也没有怎么注意会报这个错误,因为平时都很少同时重写setter和getter方法,一般的话,我们大概都是使用懒加载方法,然后重写getter方法,做一个非空判断。然后有时候根据需求,要同时重写属性的setter和getter方法。懒加载父类的firstInputView 的getter方法,我要重写界面一些控件 这个储物只要使用@synthesize 1.对于property...原创 2018-05-16 20:23:58 · 5395 阅读 · 0 评论