自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 AVAudioRecorder stop崩溃 在iOS13系统上

iOS15和iOS16都正常,但是测试反馈在iOS13的系统上,AVAudioRecorder的实例对象调用stop方法会崩溃,并且debug不到任何信息。原因是由于AVAudioRecorder的实例对象设置了delegate,但是没有用到代理方法,将设置的delegate删除就可以了。删除以下代码self.recorder.delegate = self;...

2022-10-10 08:30:19 268

原创 isKindOfClass和isMemberOfClass

- (BOOL)isKindOfClass:(Class)aClass;- (BOOL)isMemberOfClass:(Class)aClass;我们来看看这两个方法有什么不同,首先看看问题BOOL res1 = [(id)[NSObject class] isKindOfClass:[NSObject class]];BOOL res2 = [(id)[NSObject class] ...

2021-10-08 16:28:10 146

原创 iOS 内存管理

内存管理1、内存布局bss:未初始化的全局变量、静态变量等data:已初始化的全局变量、静态变量等text:程序代码内存布局2、内存管理方案TaggedPointer:对于小对象NSNumber、NSDate、NSString等,直接将数据存储在指针中NONPOINTER_ISA:64位架构下,占用64个bit位,实际上有32位或者40位就够用了,剩余的存储量一些内...

2021-10-07 21:50:06 149

原创 iOS Block

Block1、介绍Block是将函数及其执行上下文封装起来的对象2、代码编译clang -rewrite-objc -fobjc-arc JMBlock.m源码源码编译后编译后JMBlock__method_block_impl_0JMBlock__method_block_impl_0__block_impJMBlockme...

2021-10-07 11:43:56 138

原创 RunLoop

RunLoop1、概念RunLoop是通过内部维护的事件循环,来对事件/消息进行管理的一个对象2、事件循环:没有消息需要处理时,休眠以避免资源占用有消息需要处理时,立刻被唤醒事件循环RunLoop3、数据结构NSRunLoop是不开源的,CDRunLoop是开源的数据结构CFRunLoopCFRunLoopCFRunLoo...

2021-10-06 12:43:40 56

原创 RunTime

Runtime一、数据结构基础数据结构1、objc_objectid = objc_object : isa_t为共用体objc_objcet2、objc_classClass = objc_class: Class也是对象,称之为类对象,因为它继承自onjc_objectobjc_class3、isa_t有两种类型,指针型isa、非指针型isa...

2021-10-06 10:02:24 62

原创 React-Native从介绍到入门

React-Native入门一、介绍种类实现技术编程语言公司CordovaJavaScript使用HTML,CSS和JavaScriptAdobeReact-NativeJavaScriptReactFaceBookFlutter原生编码/渲染DartGoogleWeexJavaScriptVueAlibaba二、Reac...

2021-08-31 09:34:53 142

原创 使用信号量使AFNetworking异步变同步(dispatch_semaphore_t)

背景当H5调用OC的时候,默认是在主线程的,如果H5调用后,需要原生返回数据,而原生获取数据又是个耗时的异步操作就会有问题,比如OC是一个网络请求,那就需要等原生请求返回后,再返给H5。当然可以在网络请求返回的时候,调用H5的一个方法,但是觉得这样的实现方式有点low,所以还是想把网络请求改成同步,这样就可以解决这个问题了。使用信号量来实现信号量的介绍正常的使用顺序是先降低然后再提...

2021-08-18 14:57:41 475

原创 RN与OC交互

一、RN调用OCOC部分:新建一个继承NSObject的类RNHelper,导入React/RCTBridgeModule.h头文件,并遵循RCTBridgeModule协议。RNHelper.h#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface RNHelper : NSObject...

2021-08-12 18:18:33 196

原创 iOS动画总结(Core Animation&POP&贝塞尔&Transform)

本想写一篇Core Animation的文章,但是无意间在简书上看到了一个大神总结的,感觉无地自容,不能班门弄斧了,还是把文章连接贴一下吧。作者:穿山甲救蛇精iOS动画篇_UIView动画iOS动画篇_CoreAnimation(超详细解析核心动画)iOS动画篇_UIBezierPath(贝塞尔曲线)iOS动画篇_CALayer这些牛逼的子类你造吗CALayer这些牛逼的子类你造吗...

2021-08-04 19:15:30 209

原创 Facebook_Pop的使用指北

背景最近公司有了一个创新项目,就是在视频视图之上添加一层视图,视图设计涉及到了复杂的控件动画,会根据视频的播放,显示一些控件,控件有位移、缩放、旋转、shake等动画。在网上调研了一下,对比了苹果的CoreAnimation,觉得Facebook_Pop使用起来更加简单一些,并且有很多优点。在使用中,遇到了一个bug,Pop的kPOPLayerRotationY存在Bug,大于90度就会出错。Pop介绍Pop的GithubFacebook 在发布了 Paper 之后,似乎还不满足

2021-08-04 18:49:58 229 1

原创 CodePush对RN热更新

一、背景我们想要实现RN的热更新,这里使用CodePushReact-native-code-push`是微软针对React-native推出的热更新服务。CodePush官方文档。二、CodePush的使用1、CodePush CLI安装安装CodePush指令,直接在终端上输入如下命令即可,注意:这个CodePush指令只需要全局安装一次即可,如果第一次安装成功了,那后面就不在需要安...

2021-07-31 18:44:10 379

原创 iOS 已有项目利用Pod集成RN

一、背景对于已经存在的iOS项目,以模块化引入,OC与RN混编怎么做呢?我们可以利用cocopods来集成,直接使用pod install就可以让其他同事也快速集成。由于RN用npx react-native init NewProject 命令创建的新项目,外层是RN的代码,里面iOS文件夹下才是我们的工程代码,这样显得很杂乱,所以我的想法是在同级目录下创建两个文件夹iOSCode和RNC...

2021-07-31 10:38:15 834

原创 【转载】iOS通过Pod快速集成ReactNative环境

因为我们项目近期接入RN,目前接入的版本是 ReactNaitve 0.63版本,在接入过程中,发现RN的项目结构是 RN工程包含 iOS 和 Android工程的目录。但是我们对RN的引入为模块化引入,而非全项目。这样的目录结构可能对git管理或者现用工程目录管理都是一个问题。由此考虑能不能直接在iOS的现有项目目录下直接集成RN。看了一下网上上很多人的方式是直接将现用项目 Copy 一份到...

2021-07-30 18:49:57 349

原创 iOS11 WKWebview App Crash闪退

最近项目在iOS11.0.3、iOS11.1.2、iOS11.2.1、iOS.11.2.2、iOS11.2.6上面莫名其妙会崩溃,本以为是block或者是设置User-Agent导致的,最后定位是Request设置url的时候没有设置Scheme导致,记录一下。这样写就会崩溃NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSU...

2021-06-29 09:02:22 558

原创 iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒

一、环境配置注意,本文章是以Jenkins2.263.4为例1、首先安装Java环境:官网下载地址2、安装Jenkins建议下载Jenkins 2.263.4版本,因为最新版本存在login.keychain无法上传的bug, 在Jenkins官网下载下载完成后,打开终端,进入到 war 包所在目录,执行以下命令:java -jar jenkins.war --httpPort=8080待Jen...

2021-06-22 18:15:14 1150

原创 iOS判断是否开启代理,防止Charles抓包

直接检查是否设置了代理即可- (BOOL)checkProxySetting{ NSDictionary*proxySettings = (__bridgeNSDictionary*) (CFNetworkCopySystemProxySettings()); NSArray*proxies = (__bridgeNSArray*)(CFNetworkCopyProx...

2021-04-13 17:19:14 1112

原创 Apple开发者账号介绍及证书配置说明。

一、Apple开发者账号介绍1.开发者账号共有三种类型:个人级、公司级、企业级。公司和企业都属于“组织”大类,可多人协作。在苹果的开发者平台登录后,可在People界面邀请其他人员协作开发,邀请的人需要注册一个apple id 邮箱,并且可以设置开发人员的权限。p2.辨别你手中账号是什么类型:A:个人级:登录后的页面如下图:红色马赛克下方是:Apple Developer Program...

2018-09-06 10:35:24 203

原创 iOS监听用户是否有操作

最近项目上最近加的需求是监听用户操作,如果5分钟没有任何操作,需要重新登录1.让AppDelegate继承UIApplication而不是UIResponser。2.重载sendEvent方法。- (void)sendEvent:(UIEvent*)event{ //这里一定不能漏掉,否则app将不能成功启动。 [supersendEvent:event];...

2018-08-21 10:32:58 312

原创 记住密码按钮

在app的开发过程中,很多时候我们需要用到勾选框其实这一般都是用button来实现的,具体思路是在点击前设置一个图片,点击后状态改变引起图片改变。UIButton*checkbox=[[UIButtonalloc]initWithFrame:CGRectZero];[self.viewaddSubview:checkbox];checkbox.frame=CGRectMake(60,330,20,...

2017-11-29 09:46:15 87

原创 dispatch_group的使用

场景在开发过程中会经常出现这样的一个场景,就是需要刷新一个界面数据,而这个界面数据需要发起多个请求才能获得,例如:一个用户信息界面,包括基本数据,关联数据,其他特别数据等,这几种数据存在相互依赖的关系,并且获取每种数据的api不同,需要同时异步发起多个请求。在这种场景下面,就需要有一种线程同步机制来处理。通常多线程同步用得最多的就是信号量。不过,直接使用信号量不但代码上面相对松散,还会存在悬挂等问...

2017-09-08 11:49:43 116

原创 ASIHTTPRequest下载文件.实现实时网速检测

官网讲解的很细致https://allseeing-i.com/ASIHTTPRequest/下面记录一下项目中遇到的坑由于需要检测文件的下载速度,所以需要实现-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data// 接收到服务器返回的数据时调用(数据量比较大的时候,这个方法会被调用多次,每次只能拿到部分数据)...

2017-09-07 13:20:53 66

原创 A界面为Webview,B界面扫描二维码后,返回A界面,直接弹出JS的Alert,Alert的确定无法响应...

A界面为Webview,B界面扫描二维码后,返回A界面,直接弹出JS的Alert,Alert的"好"无法响应网上的解释This question gave me the most insight to the problem...Deadlock with GCD and webViewThe gist is that the thread handling the JS from the...

2017-09-05 18:31:28 217

原创 iOS UIWebView 中加载url在Safari中显示blank白屏

1.在uiwebview中加载一个url的时候,会出现白屏,无法加载的情况,在Safari中调试显示url为blank这是由于url中存在中文字符导致的解决办法,url进行encode即可NSString *urlStr = @"http://www.baidu.com/img?name=哈士奇";[urlStr stringByAddingPercentEscapesUsingEncoding:...

2017-08-10 17:07:20 214

原创 关于使用NSMutableArray,removeObjectAtIndex出现错误

使用规范@property (nonatomic, strong) NSMutableArray *historyArr;_historyArr = [[NSMutableArray alloc]init];_historyArr = data;直接进行赋值,会让NSMutableArray转变为NSArray.这样执行 removeObjectAtIndex就会不成功,造成crash规范:[we...

2017-05-18 17:29:35 99

原创 iOS 国际化手动切换语言

1. 首先我们需要一个建一个工具类//.h中@interface LJMInternationalController : UIViewController+(NSBundle *)bundle;//获取当前资源文件+(void)initUserLanguage;//初始化语言文件+(NSString *)userLanguage;//获取应用当前语言+(void)setUserlang...

2017-04-07 16:59:22 77

原创 NSURLProtocol

由于最近项目要区分是否为移动端,因此需要手动将URL请求的域名重定向到指定的IP地址,但是由于请求可能是通过NSURLConnection,NSURLSession或者AFNetworking等方式,因此要想统一进行处理,一开始是想通过Method Swizzling去hook cfnetworking底层方法,后来发现其实有个更好的方法--NSURLProtocol。NSURLProtocolN...

2017-03-20 17:45:05 47

原创 UIWebView和WKWebView在加载HTTPS时Domain=NSURLErrorDomain Code=-999错误

此问题会导致UIWebView的:- (void)webViewDidFinishLoad:(UIWebView *)webView以及WKWebView的- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation两个代理方法不运行。并且会在下面两个代理方法...

2017-03-20 17:18:32 529

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除