CentOS安装Docker step 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2Step 2: 添加软件源信息sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo...
iOS获取bundle中图片失败 iOS的SDK开发,其中用到了图片资源,在代码中获取fremework中图片时,获取的bundle为mainBundle。NSBundle *bundle = [NSBundle bundleForClass:[JMTool class]];NSURL *url = [bundle URLForResource:@"JMBundle" withExtension:@"bundle"];NSB...
AVAudioRecorder stop崩溃 在iOS13系统上 iOS15和iOS16都正常,但是测试反馈在iOS13的系统上,AVAudioRecorder的实例对象调用stop方法会崩溃,并且debug不到任何信息。原因是由于AVAudioRecorder的实例对象设置了delegate,但是没有用到代理方法,将设置的delegate删除就可以了。删除以下代码self.recorder.delegate = self;...
isKindOfClass和isMemberOfClass - (BOOL)isKindOfClass:(Class)aClass;- (BOOL)isMemberOfClass:(Class)aClass;我们来看看这两个方法有什么不同,首先看看问题BOOL res1 = [(id)[NSObject class] isKindOfClass:[NSObject class]];BOOL res2 = [(id)[NSObject class] ...
iOS 内存管理 内存管理1、内存布局bss:未初始化的全局变量、静态变量等data:已初始化的全局变量、静态变量等text:程序代码内存布局2、内存管理方案TaggedPointer:对于小对象NSNumber、NSDate、NSString等,直接将数据存储在指针中NONPOINTER_ISA:64位架构下,占用64个bit位,实际上有32位或者40位就够用了,剩余的存储量一些内...
iOS Block Block1、介绍Block是将函数及其执行上下文封装起来的对象2、代码编译clang -rewrite-objc -fobjc-arc JMBlock.m源码源码编译后编译后JMBlock__method_block_impl_0JMBlock__method_block_impl_0__block_impJMBlockme...
RunLoop RunLoop1、概念RunLoop是通过内部维护的事件循环,来对事件/消息进行管理的一个对象2、事件循环:没有消息需要处理时,休眠以避免资源占用有消息需要处理时,立刻被唤醒事件循环RunLoop3、数据结构NSRunLoop是不开源的,CDRunLoop是开源的数据结构CFRunLoopCFRunLoopCFRunLoo...
RunTime Runtime一、数据结构基础数据结构1、objc_objectid = objc_object : isa_t为共用体objc_objcet2、objc_classClass = objc_class: Class也是对象,称之为类对象,因为它继承自onjc_objectobjc_class3、isa_t有两种类型,指针型isa、非指针型isa...
React-Native从介绍到入门 React-Native入门一、介绍种类实现技术编程语言公司CordovaJavaScript使用HTML,CSS和JavaScriptAdobeReact-NativeJavaScriptReactFaceBookFlutter原生编码/渲染DartGoogleWeexJavaScriptVueAlibaba二、Reac...
使用信号量使AFNetworking异步变同步(dispatch_semaphore_t) 背景当H5调用OC的时候,默认是在主线程的,如果H5调用后,需要原生返回数据,而原生获取数据又是个耗时的异步操作就会有问题,比如OC是一个网络请求,那就需要等原生请求返回后,再返给H5。当然可以在网络请求返回的时候,调用H5的一个方法,但是觉得这样的实现方式有点low,所以还是想把网络请求改成同步,这样就可以解决这个问题了。使用信号量来实现信号量的介绍正常的使用顺序是先降低然后再提...
RN与OC交互 一、RN调用OCOC部分:新建一个继承NSObject的类RNHelper,导入React/RCTBridgeModule.h头文件,并遵循RCTBridgeModule协议。RNHelper.h#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface RNHelper : NSObject...
iOS动画总结(Core Animation&POP&贝塞尔&Transform) 本想写一篇Core Animation的文章,但是无意间在简书上看到了一个大神总结的,感觉无地自容,不能班门弄斧了,还是把文章连接贴一下吧。作者:穿山甲救蛇精iOS动画篇_UIView动画iOS动画篇_CoreAnimation(超详细解析核心动画)iOS动画篇_UIBezierPath(贝塞尔曲线)iOS动画篇_CALayer这些牛逼的子类你造吗CALayer这些牛逼的子类你造吗...
Facebook_Pop的使用指北 背景最近公司有了一个创新项目,就是在视频视图之上添加一层视图,视图设计涉及到了复杂的控件动画,会根据视频的播放,显示一些控件,控件有位移、缩放、旋转、shake等动画。在网上调研了一下,对比了苹果的CoreAnimation,觉得Facebook_Pop使用起来更加简单一些,并且有很多优点。在使用中,遇到了一个bug,Pop的kPOPLayerRotationY存在Bug,大于90度就会出错。Pop介绍Pop的GithubFacebook 在发布了 Paper 之后,似乎还不满足
CodePush对RN热更新 一、背景我们想要实现RN的热更新,这里使用CodePushReact-native-code-push`是微软针对React-native推出的热更新服务。CodePush官方文档。二、CodePush的使用1、CodePush CLI安装安装CodePush指令,直接在终端上输入如下命令即可,注意:这个CodePush指令只需要全局安装一次即可,如果第一次安装成功了,那后面就不在需要安...
iOS 已有项目利用Pod集成RN 一、背景对于已经存在的iOS项目,以模块化引入,OC与RN混编怎么做呢?我们可以利用cocopods来集成,直接使用pod install就可以让其他同事也快速集成。由于RN用npx react-native init NewProject 命令创建的新项目,外层是RN的代码,里面iOS文件夹下才是我们的工程代码,这样显得很杂乱,所以我的想法是在同级目录下创建两个文件夹iOSCode和RNC...
【转载】iOS通过Pod快速集成ReactNative环境 因为我们项目近期接入RN,目前接入的版本是 ReactNaitve 0.63版本,在接入过程中,发现RN的项目结构是 RN工程包含 iOS 和 Android工程的目录。但是我们对RN的引入为模块化引入,而非全项目。这样的目录结构可能对git管理或者现用工程目录管理都是一个问题。由此考虑能不能直接在iOS的现有项目目录下直接集成RN。看了一下网上上很多人的方式是直接将现用项目 Copy 一份到...
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...
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...
iOS判断是否开启代理,防止Charles抓包 直接检查是否设置了代理即可- (BOOL)checkProxySetting{ NSDictionary*proxySettings = (__bridgeNSDictionary*) (CFNetworkCopySystemProxySettings()); NSArray*proxies = (__bridgeNSArray*)(CFNetworkCopyProx...