前言 在经过频繁的业务开发后,我们一般对NSString的认知会固定在:NSString类型一定会使用copy修饰符来修饰,实际真的是这样吗?为什么要用copy来修饰呢?...
前言 在经过频繁的业务开发后,我们一般对NSString的认知会固定在:NSString类型一定会使用copy修饰符来修饰,实际真的是这样吗?为什么要用copy来修饰呢?...
目前是否只有module可以打包,plugin跟package形式的是否也可以打包后在module中依赖使用?
Flutter Module 打包aarFlutter Module 打包aar Flutter 版本1.17.1 Google 方式打包aar flutter build aar 这种方式打出来的aar包并没有把...
Label尺寸自适应与AutoLayout问题小结 一般我们写UILabel等控件的自适应代码为 这样宽度和高度就可以自适应,但是在label的水平方向和竖直方向有其他控件的...
进行str = sourceStr操作时,内部会执行一个操作:
str = [sourceStr copy];
那么这个copy里面做了什么呢?
if ([str isMemberOfClass:[str class]])
请问下怎么看这个copy的set是怎么实现的呢,如何知道内部是这么处理的呢?
NSString到底是用copy还是strong?本质上来讲,copy和strong都没有错,但不是说,NSString用copy就一定是最好的. 那么,什么时候用copy,什么时候用strong呢? 首先,为什么要用cop...
进行str = sourceStr操作时,内部会执行一个操作:
str = [sourceStr copy];
# 那么这个copy里面做了什么呢?
if ([str isMemberOfClass:[str class]])
请问下,怎么查看这个实现呢,怎么知道内部是这么操作的呢
【iOS】分析NSString使用copy还是strong本质上来讲,使用copy和strong都没有错,但不是说NSString用copy就一定是最好的 那么,什么时候用copy,什么时候用strong呢?首先为什么要用copy?...
@RUNNING_NIUER 没问题的,我断点打的不对,在viewDidLoad中调用的地方打的
Runloop的内部结构与运行原理什么是Runloop Runloop顾名思义,就是运行循环。首先它根程序运行过程有关系,其次它是一种转圈圈的效果。但如果这么解释,恐怕谁都听不懂。 想要弄明白Runloop,...
iOS7之后的导航栏与控制器原点坐标问题 简单记录关于iOS7之后有导航控制器的控制器view原点坐标问题(view可能会被导航栏遮盖的问题)。 无UIScrollVie...
多谢支持
关于iOS Widget 插件学习分享前言 也可以关注我的个人博客 iOS extension的出现是为了能够让用户更加方便的查看自己感兴趣的东西,可以看出现在iOS10 对extension也更加的看重,界...
@Go丶Pikachu 可以看看你是怎么替换的么
iOS app内埋点切面的分析思路(基于swift3)前言 埋点统计在项目中还是比较常见的,可以用来分析用户的习惯,从而有针对性的去优化app。传统的做法就是在每个具体的事件触发的地方进行埋点,这种方法比较机械,更多的是一项体力...
iOS导航栏透明平滑过渡的简单实现 前言 项目中有时候需要某些导航栏看起来是透明的,但上面的item按钮还是存在的,那么要怎么比较快速又简单的实现呢?今天就来做个尝试,供...
swift下使用runtime交换方法的实现 前言 老的方式initialize现在已经不适用了,需要用新的方式代替。思路: 定义一个启动的协议,在app完成启动的方法里...
检查下你的代理是否设置正确
iOS app内埋点切面的分析思路(基于swift3)前言 埋点统计在项目中还是比较常见的,可以用来分析用户的习惯,从而有针对性的去优化app。传统的做法就是在每个具体的事件触发的地方进行埋点,这种方法比较机械,更多的是一项体力...
@Go丶Pikachu 有的,上代码
1. 创建一个swizzle注入的协议
```
public protocol SwizzlingInjection: class {
static func inject()
}
```
2. 创建swizzle helper
```
open class SwizzlingManager {
//只会调用一次的方法
private static let doOnce: Any? = {
UIViewController.inject()
return nil
}()
open static func enableInjection() {
_ = SwizzlingManager.doOnce
}
}
```
3. 给UIApplication 创建分类调用那个一次方法
```
extension UIApplication{
open override var next: UIResponder?{
SwizzlingManager.enableInjection()
return super.next
}
}
```
4. 在你需要的类中遵循注入协议
```
extension UIViewController: SwizzlingInjection{
public static func inject() {
//确保不是子类
guard self === UIViewController.self else { return }
DispatchQueue.once(token: "com.moglo.urmoji.UIViewController") {
//do swizzle method
}
}
}
```
iOS app内埋点切面的分析思路(基于swift3)前言 埋点统计在项目中还是比较常见的,可以用来分析用户的习惯,从而有针对性的去优化app。传统的做法就是在每个具体的事件触发的地方进行埋点,这种方法比较机械,更多的是一项体力...
mdwiki api文档编辑器使用 欢迎大家关注我的个人博客 Step one 环境要求 Install node.js >= 0.10 and npm (if not in...
iOS extension app 问题总结 欢迎大家关注我的博客 extension app 中使用 主项目中文件中的函数 场景: 当开发一个项目的时候建了很多一些全局...
准备工作 也可以关注我的个人博客 a. 购买一个属于自己的域名 国内的话直接上阿里云购买即可,国外的话著名的有GoDaddy和name b. 准备一台自己的服务器(或者g...
前言 也可以关注我的个人博客 这里摘录下laravel5.5教程的认证文档,做个总结,方便今后查阅。 安装passport 使用 Composer 依赖包管理器安装 Pas...