240 发简信
IP属地:浙江
  • iOS OC语言copy修饰符实现原理

    前言   在经过频繁的业务开发后,我们一般对NSString的认知会固定在:NSString类型一定会使用copy修饰符来修饰,实际真的是这样吗?为什么要用copy来修饰呢?...

  • 目前是否只有module可以打包,plugin跟package形式的是否也可以打包后在module中依赖使用?

    Flutter Module 打包aar

    Flutter Module 打包aar Flutter 版本1.17.1 Google 方式打包aar flutter build aar 这种方式打出来的aar包并没有把...

  • Label尺寸自适应与AutoLayout问题小结

    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之后的导航栏与控制器原点坐标问题   简单记录关于iOS7之后有导航控制器的控制器view原点坐标问题(view可能会被导航栏遮盖的问题)。 无UIScrollVie...

  • 多谢支持

    关于iOS Widget 插件学习分享

    前言 也可以关注我的个人博客   iOS extension的出现是为了能够让用户更加方便的查看自己感兴趣的东西,可以看出现在iOS10 对extension也更加的看重,界...

  • @Go丶Pikachu 可以看看你是怎么替换的么

    iOS app内埋点切面的分析思路(基于swift3)

    前言 埋点统计在项目中还是比较常见的,可以用来分析用户的习惯,从而有针对性的去优化app。传统的做法就是在每个具体的事件触发的地方进行埋点,这种方法比较机械,更多的是一项体力...

  • 120
    iOS导航栏透明平滑过渡的简单实现

    iOS导航栏透明平滑过渡的简单实现 前言   项目中有时候需要某些导航栏看起来是透明的,但上面的item按钮还是存在的,那么要怎么比较快速又简单的实现呢?今天就来做个尝试,供...

  • swift下使用runtime交换方法的实现

    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文档编辑器使用

    mdwiki api文档编辑器使用 欢迎大家关注我的个人博客 Step one 环境要求 Install node.js >= 0.10 and npm (if not in...

  • 120
    iOS extension app 问题总结

    iOS extension app 问题总结 欢迎大家关注我的博客 extension app 中使用 主项目中文件中的函数   场景: 当开发一个项目的时候建了很多一些全局...

  • Ubuntu下搭建个人博客(LNMP)

    准备工作 也可以关注我的个人博客 a. 购买一个属于自己的域名   国内的话直接上阿里云购买即可,国外的话著名的有GoDaddy和name b. 准备一台自己的服务器(或者g...

  • Laravel 基础Api认证

    前言 也可以关注我的个人博客  这里摘录下laravel5.5教程的认证文档,做个总结,方便今后查阅。 安装passport 使用 Composer 依赖包管理器安装 Pas...

个人介绍
Focus on the Internet to make life better!