这些 iOS 冷知识,你知道吗?

这些 iOS 冷知识,你知道吗?
单例对象的内存管理 问题背景 在解决 App 防止抓包问题的时候,有一种常见的解决方案就是:检测是否存在代理服务器。其实现为: + (BOOL)getProxyStatus {    CFDictionaryRef dicRef = CFNetworkCopySystemProxySettings();    const CFStringRef proxyCFstr = CFDictionaryGetValue(dicRef, (const void*)kCFNetworkProxiesHTTPProxy);    CFRelease(dicRef);    NSString *proxy = (__bridge ...

iOS线程数量监控工具

iOS线程数量监控工具
简单却强大的线程监控工具 KKThreadMonitor :当线程过多或瞬间创建大量子线程(线程爆炸),控制台就打印出所有的线程堆栈。便于分析造成子线程过多或线程爆炸的原因。 /******* 线程爆炸,控制台打印如下: ********/ 🔥💥💥💥💥💥一秒钟开启 28 条线程!💥💥💥💥💥🔥 👇👇👇👇👇👇👇堆栈👇👇👇👇👇👇👇 2020-04-12 12:36:29.270755+0800 BaiduIphoneVideo[55732:6928996] 当前线程数量:43 callStack of thread: 921...

静态插桩的方式来实现Hook Method

静态插桩的方式来实现Hook Method
通过fishhook拦截方法的局限性 我之前写了一个开源库TimeProfiler,监控所有的OC方法耗时。可以在开发App阶段,很方便的看到主线程所有OC方法的耗时。但是由于TimeProfiler是通过fishhook基于运行时hook,所以从原理上,它就有局限性:不能选择hook部分类的OC方法。这造成2个很难解决的问题: 不能选择hook一部分类的OC方法,全部hook会有性能问题,所以也不能线上使用。个别同学反映,TimeProfiler...

在 Flutter 中玩转 Objective-C Block

在 Flutter 中玩转 Objective-C Block
dart_native 作为一条比 Channel 性能更高开发成本更低的超级通道,通过 C++ 调用 Native 的 API,深入底层且考虑全面。很多 Objective-C 接口的参数和返回值是 Block,所以这就需要支持用 Dart 语言创建和调用 Objective-C Block。 Dart 调用 Objective-C 带 Block 的 API Dart 语言支持协程,这样就无需传递闭包来作为异步调用的回调。而 Objective-C 大量 API 都使用 Block 作为回调,当 Dart 调...

Swift之基本运算、数据类型、元组

Swift之基本运算、数据类型、元组
引言 Swift编程语言,支持多编程范式和编译式,用来撰写基于macOS/OS X、iOS、watchOS和tvOS的软件。 苹果公司于2014年在苹果开发者年会(WWDC)发布了Swift编程语言。从设计上苹果公司让Swift与Objective-C共存在苹果公司的操作系统上苹果宣称Swift的特点是:快速、现代、安全、互动,而且明显优于Objective-C语言。Swift以LLVM编译,可以使用现有的Cocoa和Cocoa Touch框架。Xcode Playgrounds功能是S...

Combine-Foundation中的Publisher

Combine-Foundation中的Publisher
为了方便使用,Foundation 为 iOS 开发中的几个常见操作提供了直接获取 Publisher 的方式。 URLSession PublisherTimer PublisherNotification PublisherKVO@Published URLSession Publisher 这是 URLSession 新增的一种网络 API,通过这个 API 可以更加简单的完成网络请求数据转换等操作。 // 服务器返回的数据对应的Model struct NewsModel: Codable { var reason: String var erro...

Swift之流程控制

Swift之流程控制
if-else if后面的条件可以省略小括号条件后面的大括号不可以省略 下面的代码是可以的 let score = 70 if score >= 80 { print("优秀") }else if score >= 60{ print("及格") }else{ print("不及格") } if后面的条件只能是bool类型 例如下面是不可以的 if score { print("aa") } while 先看如下代码 var num = 5 while num > 0 { print("num is \(num)") ...

带动画的TabBar

带动画的TabBar
带有动画效果的TabBar:TLAnimationTabBar 1. 特点 模仿https://github.com/Ramotion/animated-tab-bar项目的动画效果使用简单、耦合小无需自定义控件,适配系统自带的UITabBarItem支持自定义动画拓展 2. 效果图如下 3. pod支持 1. 版本 pod 'TLAnimationTabBar', '~> 1.0.0' 2. CocoaPods获取不到最新的TLAnimationTabBar版本问题 这可能是本地的CocoaPods仓库列表没有更新...

高仿系统图原生UIAlertController

高仿系统图原生UIAlertController
支持 高仿系统原生样式效果,有Alert和Sheet两种模式支持自定义文本字体和颜色支持自定义view作为Action支持横屏支持深色模式不支持文本输入,但可以采用自定义view作为Action的方式实现只支持iOS 9.0及以上系统支持pod 用法 与UIAlertController的用法高度一致demo下载直接将demo中TLAlertLib文件夹中的文件导入到项目即可使用也可以pod'TLAlertLib', '~> 1.0.0'复制代码示例代码 TLAlert...

iOS 14的“查找”应用让女友查岗更容易了

iOS 14的“查找”应用让女友查岗更容易了
据外媒 9to5Mac 透露,在 iOS 14 中苹果的“查找”应用将会增添有用的新功能,包括增强现实模式和新的位置触发方式,这些都是该媒体在 iOS 14 的早期测试版中获悉的。 “查找”是苹果在 iPhone、iPad、Mac 和在网页版都发布了的一个独立的应用,用于查找丢失的设备并与家人和朋友共享位置。从 iOS 13 开始,苹果整合了“查找我的iPhone”和“查找我的朋友”,从而将设备跟踪和位置共享合并到一个应用中。...
Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录