0%

K3N刚发布,斐讯就翻车了,K3N基本没有讨论的帖子,论坛基本是K3的帖子,好在K3和K3N的固件是通用的,通过TTL可以直接刷入K33的固件,在这里记录一下刷机的过程

阅读全文 »

1. 背景

  • iOS IAP 的机制是有问题的。并不是金融级别的支付校对流程
  • iOS IAP是在客户端完成的,是单向的过程,使用 IAP 内购会有可能导致订单丢失
阅读全文 »

泛型可以让代码处理类型更加灵活,在某些场景下可以很大程度的重用代码,泛型是什么,使用泛型的好处,这里不多说,网上有很多文章介绍的很详细,这里只讨论用法,Swift的泛型与其他语言有些类型,又有些不一样,搜了一下发现,网上的文章只描述了一点,并不全面,看完后依然没能很全面的说明泛型的用法,在这里记录完整的用法

阅读全文 »

引用计数内存管理

  1. 所有的对象都存放在堆上,需要手动管理内存
  2. iOS内存管理通过retainCount进行管理,通过引用计数+/-1来控制内存的的声明周期,通常来说,我们在一个代码块中,我们会对需要用到的对象的引用计数+1,在离开代码块时,对引用计数-1,通过这种机制,我们只需要关心在我们的代码中需要的时候retain,不需要的时候release,而不用关心对象什么时候释放,当引用计数为0,即之后再也没有对该内存的引用,对象内存就会被释放,这个由系统框架来做
阅读全文 »

NSTimer是iOS最常用的定时器工具之一,在使用的时候常常会遇到各种各样的问题,最常见的是内存泄漏,通常我们使用NSTimer的一般流程是这样的

  1. 在ViewController初始化或加载的地方创建NSTimer,并且通过属性持有(为了关闭)
  2. 在ViewController的dealloc方法关闭定时器(invalidate),并且把NSTimer置为nil

上面做法可能会造成内存泄漏,invalidate方法通常不能放在NStimer.target.dealloc里面,因为NSTimer会对target强引用,而如果target对NSTimer强引用就会造成循环引用

阅读全文 »

升级单个类库

1
$ pip install --upgrade flask

升级所有类库

由于pip不支持批量操作,这里通过python代码升级

1
2
3
4
5
import pip
from subprocess import call

for dist in pip.get_installed_distributions():
call("pip install --upgrade " + dist.project_name, shell=True)

导出已安装的类库配置

1
$ pip freeze > requirements.txt

安装类库配置

1
$ pip install -r requirements.txt

之前使用crontab经常遇到一些问题,例如脚本不执行的问题,报错问题,在这里记录一下过程,先介绍一个python工具,可以自动更改和生成crontab运行脚本,使用起来非常友好:plan

阅读全文 »

最近拖延症又犯了,事情总是一拖再拖,一个人学习很容易堕落,在家里,一不小心,刷刷微博,看看新闻,一天就过去了,今年只剩下4个月了,想做的事情总是半途而废,虽然有时候很尽力去控制,但还是浪费了不少时间,下决心在剩余时间里,给自己定一些目标,计划+实施,定好时间点,这里记录一下今年需要看的书和计划

阅读全文 »

scrapy是python最有名的爬虫框架之一,可以很方便的进行web抓取,并且提供了很强的定制型,这里记录简单学习的过程和在实际应用中会遇到的一些常见问题

阅读全文 »