开发笔记

上架流程

http://www.jianshu.com/p/391f6102b4fb

IAP(内购)

开始

http://yimouleng.com/2015/12/17/ios-AppStore/
二次验证流程

NSURLCache(缓存)

NSURLCache
http://www.cnblogs.com/madpanda/p/4700741.html

https抓包

http://simcai.com/2016/01/31/ios-http-https%E6%8A%93%E5%8C%85%E6%95%99%E7%A8%8B/
http://www.cnblogs.com/dsxniubility/p/4621314.html

Runtime 笔记

http://blog.csdn.net/hello_hwc/article/details/49682857
http://v.youku.com/v_show/id_XODIzMzI3NjAw.html
http://www.jianshu.com/p/9d649ce6d0b8

RunLoop

  • 深入理解RunLoop
  • iOS线下分享《RunLoop》
  • iOS RunLoop 编程手册 (译)
  • runloop原理

项目图片

http://get.ftqq.com/1370.get

Python3安装

https://stringpiggy.hpd.io/mac-osx-python3-dual-install/#step3

浏览器通过连接打开App

http://www.cocoachina.com/industry/20140522/8514.html
http://sspai.com/31500#01
http://sspai.com/33969

vim入门

http://blog.jobbole.com/86132/

iOS - 通用链接

http://www.jianshu.com/p/415a5add49c8

正则

  • http://www.jianshu.com/p/ea10003d224a
  • http://www.jianshu.com/p/d569dc998073

isKindOf逆向

http://m.blog.csdn.net/article/details?id=51672087

UIScrollView

http://www.jianshu.com/p/5804fa72aaed
http://tech.glowing.com/cn/practice-in-uiscrollview/

UICollectionView

  • WWDC2016 Session笔记 - iOS 10 UICollectionView新特性

CoreGraphics

  • http://www.cocoachina.com/industry/20140115/7703.html

  • http://www.jianshu.com/p/8cf8d4b724d2

  • http://www.jianshu.com/p/491b50cb19cb

  • http://www.cocoachina.com/ios/20150318/11350.html

GCD

  • https://github.com/nixzhu/dev-blog/blob/master/2014-04-19-grand-central-dispatch-in-depth-part-1.md
  • http://www.jianshu.com/p/0b0d9b1f1f19
  • http://www.cnblogs.com/ludashi/p/5336169.html
  • iOS 并发编程之 Operation Queues
  • 深入理解GCD

缓存

YYCache 设计思路

FlexBox

Flex 布局教程:语法篇
FLEXBOX FROGGY

优化

  • 理解UIView的绘制

  • 绘制像素到屏幕上

  • iOS 保持界面流畅的技巧

  • iOS 性能调优,成为一名合格iOS程序员必须掌握的技能
  • 微信读书 iOS 性能优化总结
  • iOS实时卡顿监控
  • 卡顿检测

  • iOS应用UI线程卡顿监控

  • Simple Strategies for Smooth Animation on the iPhone
  • 如何做优化,UITabelView才能更加顺滑
  • iOS离屏渲染优化

  • 离屏渲染学习笔记

  • UIKit性能调优实战讲解

  • Instrument调试界面卡顿

  • Performance Tips

  • 优化集合

  • https://developer.apple.com/videos/play/wwdc2012/506/

  • 股票

  • 一些提高UI绘制性能的技巧

  • iOS 事件处理机制与图像渲染过程

  • https://developer.apple.com/videos/play/wwdc2014/419/

  • 线程安全类的设计

*如何正确地写好一个界面

AsyncDisplayKit

使用 ASDK 性能调优 - 提升 iOS 界面的渲染性能
从 Auto Layout 的布局算法谈性能
预加载与智能预加载(iOS)
新大陆:AsyncDisplayKit
https://www.youtube.com/watch?v=sqkinHYXTuc
https://www.youtube.com/watch?v=RY_X7l1g79Q

Swift DEBUG

http://www.cnblogs.com/Bob-wei/p/5237761.html

Markdown
https://www.zybuluo.com/static/editor/cmd-manual.html

一维数组转二维数组

let count = 3

            for (i, answer) in answers.enumerated() {
                if _answers.isEmpty || i % count == 0 {
                    _answers.append([answer])
                } else {
                    _answers[i / count].append(answer)
                }
            }

响应链
http://hongchaozhang.github.io/blog/2015/10/21/touch-event-in-ios/
http://www.jianshu.com/p/12ef1c9f9741
http://zhoon.github.io/ios/2015/04/12/ios-event.html

版本比较

// 6.5.1 < 7.0
let flag = "6.5.1".compare("7.0", options: .numeric) == .orderedAscending
/// true

// 6.5.1 > 7.0
let flag = "6.5.1".compare("7.0", options: .numeric) == .orderedDescending
//  false

进位除法

(a + b - 1) / b

16进制字符串对100求余

let target = [
            76,
            16,
            56,
            96,
            36
        ]

        let str = "2131412EB552"
        var result = 0
        for (i, char) in str.reversed().enumerated() {
            let number = Int("\(char)", radix: 16)!
            if i == 0 {
                result = number
                continue
            }
            let idx = i % 5
            let n = target[idx]
            result += (number * n)
        }
        result %= 100
- (int)calculateHexMod:(NSString *)hexString {
    static NSArray *targets;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        targets = @[
                    @76,
                    @16,
                    @56,
                    @96,
                    @36
                    ];
    });

    int result = 0;
    NSInteger strLength = hexString.length;
    for (int i = 0; i < strLength; i++) {
        NSString *subStr = [hexString substringWithRange:NSMakeRange(strLength - 1 - i, 1)];
        int number = (int)strtoull([subStr UTF8String], NULL, 16);
        if (i == 0) {
            result = number;
            continue;
        }
        int idx = i % 5;
        int n = targets[idx].intValue;
        result += (number * n);
    }

    result %= 100;

    return result;
}

打印内存地址

let a = [1, 2, 3, 4]
var b = [1, 2, 3, 4]
print(address(o: a))
a.withUnsafeBufferPointer {
   print($0)
}
b.withUnsafeBufferPointer {
  print($0)
}
b.append(5)
b.withUnsafeBufferPointer {
  print($0)
}

func address(o: UnsafeRawPointer) -> String {
        return String(format: "%018p", Int(bitPattern: o))
    }

Swift 中的锁和线程安全

iOS 开发中的八种锁

你可能感兴趣的:(开发笔记)