自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS静态库依赖的崩溃

1、崩溃日志#0 Thread SIGSEGV SEGV_ACCERR解析原始0 libobjc.A.dylib objc_opt_self+161 libswiftCore.dylib swift_getInitializedObjCClass+242、现象真机联调,不会崩溃archive release 打包不会崩溃archive debug 打包会崩溃3、原因工程库依赖关系:主工程->静态库A->静态库B。崩溃日志指向的是...

2021-10-10 16:10:18 697

原创 苹果内购(IAP)掉单

出现掉单的场景:其实严格来讲不算是掉单,支付成功后在SKPaymentTransactionObserver的回调函数- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions会返回票据信息。一般情况下,在调用- (void)addPayment:(SKPayment *)payment时,设置了payment的applic

2021-09-25 08:57:16 1203

原创 OC MethodSwizzling的理解

方案一:void swizzleMethod(Class cls, SEL originalSel, SEL swizzleSel) { Method originalMethod = class_getInstanceMethod(cls, originalSel); Method swizzlingMethod = class_getInstanceMethod(cls, swizzleSel); method_exchangeImplementations(origi...

2021-03-11 10:29:35 226

原创 swift学习--OC与swift互调底层实现

1、工具:Hopper Disassembler v42、swift测试类:class MyT1 : NSObject { var i:Int @objc init(i:Int) { self.i = i; } @objc func show(){ MyTestOC.test() }}3、OC测试类:@interface MyTestOC : NSObject+ (void)test;@e...

2021-03-05 17:23:37 324

原创 swift学习--OC引入Swift文件

1、build-setting中设置Defines Module为YES2、系统会自动把swift文件转成OC头文件,放在"工程名-Swift.h"文件中,这个文件在系统的/Users/{用户名}/Library/Developer/Xcode/DerivedData/{工程名-xxxx}/Build/Intermediates.noindex/{工程名}.build/Debug-iphonesimulator/{工程名}.build/DerivedSources目录。上图TestSwift

2021-03-05 16:59:20 1002

原创 iOS KVO原理学习

1、调用对象A的- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(nullable void *)context方法2、系统Foundation库在这个方法中通过objc_allocateClassPair方法创建一个继承于A class的子类(objc_allocateClassPair设置了extraB

2021-02-27 18:07:02 97

原创 记录下CPU停止运行的问题

记录下CPU停止运行的问题:iOS相芯SDK做美颜,pod 'Nama-lite', '7.2.0'。测试机iphone-xr, 调用AVCaptureSession采样作为相芯的输入源,sessionPreset参数设置为AVCaptureSessionPresetHigh时。打开Instruments的Core Animation测试CPU的使用情况,刚开始6个核正常运行,两分半钟左右,会有两核变为非活动状态,CPU占用率也由70%左右一下升到130%左右,手机发热厉害。关闭的两个CPU在后

2021-02-27 16:55:09 1041

原创 iOS系统Framework常用的设计模式

iOS系统自带了很多优秀的Framework,为iOS开发提供了很大的便利性。这些优秀的Framework里自然少不了很多优秀的设计思想,下面小结一下常用到的设计模式:1、singleton单例:NSUserDefaults, NSFileManager, NSNotificationCenter等等。这些单例设计可以更好地统一管理资源、处理事件,解决资源共享互斥的问题。2、delegat

2021-02-27 16:41:22 182

原创 遍历mac指定目录下所有Mach-O文件,找出函数符号所在的文件(库冲突用)

遍历mac指定目录下所有Mach-O文件,找出函数符号所在的文件(库冲突用)

2016-11-25 17:49:02 1004

原创 iOS app包可执行文件重复分类查找脚本

nm appExecName | grep \( | awk '{split($3, array, "("); if (dict[array[1]$4]) {print $0} else {dict[array[1]$4] = $0}}'

2016-11-24 19:58:59 1164

原创 从MVC到MVVM

从MVC到MVVM

2016-03-25 22:38:24 1035

原创 软件系统工程

软件系统工程涉及到很多工序:需求收集、需求分析、软件设计、系统开发、测试、发布、维护。这里总结一下在iOS开发环节可以提高生产效率的一些方法:一、系统信息收集1、崩溃信息收集2、接口异常信息收集3、网络异常信息收集4、用户行为信息收集二、自动打包、发布三、集成第三方库

2016-03-12 11:08:17 890

原创 iOS block 小结

iOS block在使用过程中如不小心会出现些问题,如循环引用、崩溃等,下面结合自己的实际使用做一下总结。首先,先看一下llvm实现block的源码(这个很重要):http://clang.llvm.org/docs/Block-ABI-Apple.html#objective-c-extensions-to-blocks其实block就是用c语言实现的一个struct,里面包含了bloc

2016-03-04 22:22:27 358

原创 iOS9.2崩溃:NSTimer(PhotosUI) blockInvoke

场景:iOS9.2调用MessageUI.framework的MFMessageComposeViewController发短信,调起发短信界面几秒后程序崩溃,必现。最后的堆栈为NSTimer(PhotosUI) blockInvoke。在iOS9.0以下的机器上一切正常。解决思路:1、排除系统的bug:新建一个工程,在iOS9.2的机器用同样的代码调起发短信界面,一切正常。初步怀

2016-01-26 22:30:01 1579

Linux库函数大全(C语言)

Linux库函数大全(C语言):内存操作、文件操作、字符串操作等

2009-08-09

空空如也

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

TA关注的人

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