iOS开发之模拟器测试远程推送

iOS开发之模拟器测试远程推送
Xcode 11.4 之前必须使用第三方和真机来测试远程推送(APNS)。 但 Xcode 11.4 之后可以通过simctl命令在模拟器上进行测试。 使用命令行 Xcode 命令行工具允许从终端上使用模拟器:启动模拟器,触发通用链接等。 其中有一个命令就是将远程推送通知发送到 iOS 模拟器。 查看帮助 xcrun simctl push --help Send a simulated push notification Usage: simctl push <device> [<bundle ide...

iOS在某个页面强制横屏

iOS在某个页面强制横屏
最近在网上找了很多关于如何在某一个页面强制横屏的资料,但是还是没有实现预期的效果。最后经过不懈努力,最终还是找到了一个可以实现这一需求的方法。下面就将该方法整理出来,并附带demo下载。供以后在开发中方便使用。 方法实现部分 在AppDelegate.h中定义一个属性,如下: /// 是否允许转向 @property(nonatomic,assign)BOOL allowRotation; AppDelegate.m中实现横屏或竖屏的设置: /...

这些 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...

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...
Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录