240 发简信
IP属地:北京
  • 内存优化

    (1):用ARC管理内存(2):在正确的地方使用reuseIdentifier,比如collectionView cell的复用(3):少用透明view(4):避免过于庞大的...

  • 组件化

    组件化 1.如何实现组件化1)首先创建壳工程。2)在壳工程内集成不同的功能模块以及业务模块。3)使用cocoapods 管理各个模块。4)使用JLRouter管理跳转。5)使...

  • 性能优化

    自动布局 Auto Layout 在 iOS 12 中优化后的性能,已经基本和手写布局一样可以达到性能随着视图嵌套的数量呈线性增长 了。而在此之前的 Auto Layout,...

  • 120
    copy修饰可变数组

    这是因为self.array = b;触发了array的set方法,在set方法中: 然后在[self.array addObject:@1];的时候找不到addObject...

  • 120
    iOS之NSTimer循环引用的解决方案

    前言 在使用NSTimer,如果使用不得当特别会引起循环引用,造成内存泄露。所以怎么避免循环引用问题,下面我提出几种解决NSTimer的几种循环引用。 原因 当你在ViewC...

  • alloc init 和new 以及[NSArray array]的区别

    1.new和alloc的区别//源码实现 [className new]基本等同于[[className alloc] init],区别只在于alloc分配内存的时候使用了z...

  • @dynamic和@synthesize

    1.@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@synthes...

  • const和#define

    (1)const和#define都可以定义常量,但是const用途更广。 (2)const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只...

  • 120
    ios数据持久化

    本文内容:iOS本地数据持久化的几种类型iOS本地数据持久化几种类型的应用场景及使用 一.iOS本地数据持久化的类型: -NSUserDefaults -plist -Key...

  • AFNetworking2.0和3.0有什么区别

    2.0使用的NSURLConnection,3.0使用的是NSURLSession, 1)NSURLConnection下载文件时,先是将整个文件下载到内存,然后再写入到沙盒...

  • 如何解决if else嵌套问题

    1.提前判断return 比如空值if(...){}else{break;}改造后if(...){return;}2.使用策略模式map 3.使用多态例如一个tableVi...

  • 120
    TCP-如何保证传输可靠性

    TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的。 确保传输可靠性的方式 TCP协议保证数据传输可靠性...

  • 120
    block

    block为什么用copy修饰? 因为在MRC下block默认是存储在栈上的,栈上的内存很可能随时会被释放,block被销毁后再调用会出错,如果用copy修饰以后会把这个bl...

  • 单例

    什么时候需要使用单例? 整个应用程序共用一份资源,只需要创建一次。例如:1.登录后用户的个人信息使用nsuserdefaults单例管理2.使用单例访问应用的配置信息3.。。...

  • 120
    算法

    全排列 //给定正整数n,计算出n个元素的集合{1,2,....,n}能够划分为多少个不同的非空集合 重建二叉树 快排 链表反转 有序链表的合并 二叉树的反转步骤简述为: 字...

  • 120
    dispatch_once 简单原理

    概述 dispatch_once能保证任务只会被执行一次,即使同时多线程调用也是线程安全的。常用于创建单例、swizzeld method等功能。它的功能比较简单,接下来看下...

  • 120
    METHOD-SWIZZLING 方法交换

    METHOD-SWIZZLING 是什么? method-swizzling的含义是方法交换,其主要作用是在运行时将一个方法的实现替换成另一个方法的实现,这就是我们常说的iO...