240 发简信
IP属地:江苏
  • 我也遇到了同样的问题,只要史瀑布流,sectionHeadersPinToVisibleBounds设置为true就没效果

    UICollectionView SectionHeader悬浮

    写在前面 这一系列文章是最近写的一款简单的音乐播放器中涉及到的一些比较实用的技术,希望能对大家的开发提供帮助,这是播放器的Github地址。 自定义UICollectionV...

  • git reset --hard id 救了我的命

    【Git】rebase 用法小结

    欢迎关注微信公众号:全栈工厂 本文主要参考https://git-scm.com/docs/git-rebase[https://git-scm.com/docs/git-r...

  • 对象的指针是为了回传值吧
    就比如
    - (void)func:(BOOL **) value {
    *value = xxx;
    }

    引用计数带来的一次讨论

    关于 NSString 的疑问 打印结果: 会发现引用计数是一个很大的值,为什么?这是一个放在常量区的字符串常量,返回的结果是UINT_MAX值 关于 release ...

  • iOS进阶:WebViewJavascriptBridge源码解读

    WebViewJavascriptBridge GitHub地址 jsBridge框架是解决客户端与网页交互的方法之一。最主要的实现思路是客户端在webivew的代理方法中拦...

  • 用信号量呀

    AFN 3.0

    切记,保留 AFHTTPSessionManager 的引用, 在适当的时候调用 方法,否则 AFHTTPSessionManager 不会 dealloc。

  • 方案一我试了一下,会影响别的App,这样肯定是不行的

    关于iOS禁止截屏

    背景 在日常开发的一些业务场景中,如果涉及到一些敏感信息(如:付款的二维码或条形码等),而我们不希望相关敏感信息被随意传播。此时自然就会产生禁止截屏这个需求。 实现方式 禁止...

  • - (void)removeAllSubviews {
    //[self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
    while (self.subviews.count) {
    [self.subviews.lastObject removeFromSuperview];
    }
    }
    这个方法不错,YYKit 的源码

  • 1.userWithBlock里面应该是这样:
    + (UserBuilder *)userWithBlock:(void (^)(UserBuilder *))block {
    UserBuilder *b =[ [UserBuilder alloc] init];
    !block ?: block(b);
    retuen b;
    }

    2.NSString类型确实应该用copy,因为有对应的可变类型

    iOS 创建对象的姿势

    在写 iOS 代码的时候,怎么样去 new 一个新对象出来,都有一些讲究在里面。使用不同的姿势去创建对象,对后期维护所造成的影响会存在细微的差别。 init 创建 在之前一篇...

  • 几个常用转换:
    id (*function1)(id, SEL, BOOL(^)(BOOL b)) = (id (*)(id, SEL, BOOL (^)(BOOL b)))objc_msgSend;

    id (*function2)(id, SEL, id) = (id (*)(id, SEL, id))objc_msgSend;

    id (*functionSuper)(id, SEL, ...) = (id(*)(id, SEL, ...))objc_msgSendSuper

    版本变化-objc_msgSend的坑

    来历 写给想玩runtime却又难以开启征程的小伙伴。这个函数是包含在头文件<objc/message.h>当中的一个支撑起整个消息发送机制的关键函数。也和OC的runtim...

  • 在LinkListIterator里面增加一个BOOL isHeader标记位,初始化里面设置为YES,在nextItem判断,如果为YES就直接返回self.currentNode,否则就等于下一个节点,然后返回

    iOS设计模式--迭代器

    学习迭代器之前,先看一种数据结构--线性表 线性表:线性表是最基本,最简单,也是最常用的一种数据结构。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元...

  • @奔小康 那如果想在block的回调里面加埋点,应该怎么hook?

    iOS无埋点数据SDK实践之路

    本篇文章是基于 网易乐得无埋点数据SDK 总结而成。负责无埋点数据收集 SDK 的开发已经有半年多了,期间在组内进行过相关分享,现在觉得是时候拿出去和同行们交流下了。本篇主要...

  • 120
    2018收集iOS笔试题(仅供参考学习使用)

    第一波: 自答:说实话,刚刚看到这套面试题,我觉得还是很难的,这是要招聘大牛的节奏啊...好吧,菜鸟一枚的我来试着回答一下. 1.什么是函数式编程?说起链式编程和函数式编程,...

  • 不过现在感觉延时特别大,大概在4-5秒的延时,就算在同一个局域网内,延时也很大

    一步步搭建视频直播系统,基于LFLiveKit+ijkplayer+rtmp(iOS端)

    本文主要使用的三个技术: 推流:LFLiveKit 播放:ijkplayer 服务器:nginx+rtmp+ffmpeg 有了这三点技术就可以完成一个简约的直播系统。效果图如...

  • 我也成功了,感谢博主带路

    一步步搭建视频直播系统,基于LFLiveKit+ijkplayer+rtmp(iOS端)

    本文主要使用的三个技术: 推流:LFLiveKit 播放:ijkplayer 服务器:nginx+rtmp+ffmpeg 有了这三点技术就可以完成一个简约的直播系统。效果图如...

  • 纯OC实现的快速排序和选择排序
    快速排序:
    + (NSArray<NSNumber *> *)quickSortForRandomPovit:(NSMutableArray<NSNumber *> *)sourceArray {
    if (sourceArray.count < 2) {
    return sourceArray;
    }
    NSInteger povit = [sourceArray[arc4random() % sourceArray.count] integerValue]; //
    NSMutableArray<NSNumber *> *less = [NSMutableArray new];
    NSMutableArray<NSNumber *> *greater = [NSMutableArray new];
    for (NSNumber *number in [[sourceArray subarrayWithRange:NSMakeRange(1, sourceArray.count - 1)] mutableCopy]) { // 每次从下标为1处开始截取
    if (povit > [number intValue]) {
    [less addObject:number];
    } else {
    [greater addObject:number];
    }
    }
    return [[[self quickSort:less] arrayByAddingObjectsFromArray:@[sourceArray[0]]] arrayByAddingObjectsFromArray:[self quickSort:greater]];
    }

    // 选择排序
    + (NSArray *)selectionSort:(NSArray *)sourceArray {
    NSMutableArray *sourceMutableArray = [sourceArray mutableCopy];
    NSMutableArray *returnArray = [NSMutableArray array];
    for (int i = 0; i < sourceArray.count; i ++) { // 一定要循环sourceArray,遍历最原始的数组,而不是sourceMutableArray,因为sourceMutableArray一直在变
    // 找到数组中最小元素的下标
    int smallIndex = [self findSmallItemIndex:sourceMutableArray];
    [returnArray addObject:sourceMutableArray[smallIndex]];
    [sourceMutableArray removeObjectAtIndex:smallIndex];// 每循环一次把sourceMutableArray里面的最小元素消除
    }
    return returnArray;
    }

    // 找到数组中最小元素的下标
    + (int)findSmallItemIndex:(NSArray *)array {
    int smallItem = (int)array[0];
    int smallIndex = 0;
    for (int i = 0; i < array.count; i ++) {
    if (smallItem > (int)array[i]) {
    smallItem = (int)array[i];
    smallIndex = i;
    }
    }
    return smallIndex;
    }

    iOS算法总结-快速排序

    快速排序 快速排序(Quick Sort) 的基本思想是:通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记...

  • 在Swift中同时用代理和Block(Closure)回调

    目的: A页面push到B页面,点击B页面的按钮传值到A页面,分别用delegate和Block来实现 1.在页面B定义delegate和Block ``` importUI...

  • 循环语句在bat文件上面的应用

    :chongfu 这里写你的adb命令 ping127.0.1-n"5">nul gotochongfu 追问 那我想循环1000次就停止呢?该怎么加? 还有第3行是什么意思...