博文

目前显示的是 2016的博文

present的延迟问题

要强制放到主线程来执行。。不然会出现奇怪的延迟问题 如下: DispatchQueue.main.async {     self.present(#YourViewController#, animated: true, completion: nil) }

dismiss之后的completion block(closure)是在 viewDidDisappear后面执行

记录一下~

Swift中,遇到需要重写父类的set方法时。

例如,继承了UIButton以后,需要重写setHightlighted方法,在OC中应该是: -(void)setHighlighted:(BOOL)highlighted { [super setHighlighted:highlighted] #your code here# } 然而在Swift中 直接override func setHighlighted(){}就不行了 正确的方法是重写父类的属性,如果父类的getter改名了,那就用getter的名字重写。 如下: override var isHighlighted:Bool { willSet { #your code here# } } 当然,在didSet中写也可以,按需求来做就可以。注意使用newValue

将远程git仓库的master重置到某一个位置

比如要重置到e3f1e37, git checkout master git reset --hard e3f1e37 git push --force origin master 这样就好了。

有关Layer的anchorPoint的设置

在设置Layer的AnchorPoint的时候,View的frame.origin也会随之改变, 所以就有了如下函数 func setAnchorPoint(point: CGPoint ,view: UIView ){         let oldFrame = view. frame ;         view. layer . anchorPoint = point;         view. frame = oldFrame;     } 而且。。AnchorPoint的范围是(0,0)~(1,1) 一不小心写成了坐标就又成了坑。。

Swift中的catch异常的一种写法。

do {             let results = try managedContext. execute (fetchRequest)         } catch let error as NSError {  } 然后在下面就可以catch到error了~

Swift 3 中遇到的一些问题

1.selector不好用,例如UIButton如果按新的语法来写应该是#Selector(method_name) 但是没法加冒号。。 2.单例形式变了, dispatch_once被废弃了,这样写就可以了,一行足矣。。 class some_class{ static let sharedInstance = some_class() } 3.swift里面大部分枚举都变得更好用了,例如GCD中的 DispatchQueue.global().async { } DispatchQueue .global().sync { } DispatchQueue .global().async { DispatchQueue .main.async(execute: { }) }

从文件路径获取Uri

File file = new File(路径); Uri fileUri = Uri. fromFile (file);

OKHttp/Retrofit 嗯。。

开始研究一下

SDWebImage+dispatch_async会出现诡异的问题。

记录一下。。。这俩一起用的时候,会出现图片无法加载的问题。。

【转】常用正则表达式

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ 17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ 二、校验字符的...