技术随笔(不定时更新)

1.NSTimer 加入消息循环之后,如果要立马调用定时器注册的方法,记得调用 NSTimer的对象方法 【NSTimer fire】。如果没有调用这个方法,定时器会先走完你设定的时间再调用你注册的方法。

2.如果一个控制器里有一个NSTimer的属性,并且已经加入了消息循环,那么要pop或者dismiss控制器,必须首先将这个定时器从消息循环中销毁,否则该控制器不会销毁。

3.如果想让自己的TextField变成点击弹出一个PickerView的控件,那么可以自定义一pickerView并且替换掉TextField的inputView,并且在TextField中设置一个数组用来充当数据源,这样只要在外部给该类的数据源方法赋值就可以实现这个效果了。

4.如何在另一台电脑上使用你自定义的代码片段?在Finder按shift+command+g中输入~/lib 在结果中找到Developer->Xcode>userData->CodeSnippets 将这个文件夹覆盖到另一台电脑就可以享用你之前自定义的代码片段了。(ps:在前往文件夹的输入框中~代表home的意思)

5.今天想在一个按钮的点击事件中通过判断语句来弹出一个AlertController,但是发现判断语句根本不管用,在按钮方法中只有将所有该实现的代码走完,该控制器才会调用Present或者show的方法。

6.在偏好储存的东西或者说所有存储方法里面存的对象都是不可变的,比如你要是想往取出来的字典里添加一个键值对,就要先将取出的字典转换为可变的才能操作,否则是会报错的。

7.在storyboard中设置一个scrollView的约束:在storyboard中ScrollView算是一个比较奇葩的控件了,首先 跟父控件的约束自然是必不可少的,接下来就是比较特殊的一点:通过在scrollview中加入一个view来设定它的contentSize和滚动方向。首先设置该view的上、下、左、右距离ScrollView的约束,这些约束决定scrollView的contentInset数值,我一般设置为0;接下来你要决定scrollView的滚动方向,如果是水平滚动,那么请把里面的View的Width设置为大于scrollView的Width,并且将该View的垂直中心设为和ScrollView的一样;如果是垂直滚动,那么请把里面的View的Hight设置为大于scrollView的Hight,并且将该View的水平中心设为和ScrollView的一样;如果你要让View可以两个方向都滚动,那么请设置view的宽和高都要大于scrollView的宽和高。

8.在storyboard中设置控件的自适应屏幕:如果想让一个控件在不同屏幕显示不同的大小并且保持宽高的比例,可以在约束中设置aspect来实现。具体的做法:按住control在控件内部拖动设置控件内部的aspect比例,在按住control从控件拖动到父控件上 设置控件和父控件的aspect比例,再设置其相对于父控件必要约束这样就实现了控件在不同屏幕的自适应大小。

9.最近在用基于SQlite3的FMDB框架做项目,遇见了几个容易出错的地方,记下来方便以后查阅.:如果有多个查询条件语句,中间的连接语句是And 而如果是其他插入字段中间是用","隔开的.  判断一个表格中是否有数据 最好不要使用 [FMResultSet next]作为判断条件 ,因为[FMResultSet next]是有执行次数的,每执行一次会减一.如果你使用它进行判断再查询数据,查询到的数据就会少一条.

10.block作为函数参数的写法:首先在该方法的.h头文件中 定义你要作为参数的Block的类型

这样就可以开开心心的将这种类型的block当做参数来写在你的函数里了^_^

你可能感兴趣的:(技术随笔(不定时更新))