This Year

作者: MadLife程序员 | 来源:发表于2016-02-01 14:41 被阅读36次

开发的点点滴滴,想到什么写什么。。


1.iOS9下适应HTTP连接:

比较无敌的做法是在info.plist加入如下xml代码

<key>NSAppTransportSecurity</key>
<dict>
    <!--彻底倒退回不安全的HTTP网络请求,能任意进行HTTP请求 (不建议这样做)-->
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict> 

当然为了安全起见,我们可以只对特别的域名进行HTTP连接(如允许api.insecuredomain.com这个域名下的http连接)

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
      <key>api.insecuredomain.com</key>
      <dict>

          <!--允许App进行不安全的HTTP请求-->
          <key>NSExceptionAllowsInsecureHTTPLoads</key>
          <true/>

          <!--适用于这个特定域名下的所有子域-->
          <key>NSIncludesSubdomains</key>
          <true/>
      </dict>
  </dict>
</dict>

2.在适配iOS9的时候,遇到过ColletionView不能正确显示内容的情况

这个问题可以参考我在stackoverflow的回答

3.自定义控件布局时机的问题

一般来说,假如是使用frame布局需要在layoutsubviews方法下布局,而使用Autolayout布局则需要在初始化的时候布局(如 initWithCoder or initWithFrame,这两个方法是取决于控件加载方式)。

4.如何给NavigationBarItems设置彼此之间的间距

let spacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
spacer.width = 15
viewController.navigationItem.leftBarButtonItems = [backItem, spacer, logoItem]

5.Swift2.0 Singleton

public class ABC {
    public static let instance = ABC() //static修饰的变量会懒加载
    private init(){ }
}

6.iOS唯一标识

使用KeyChain

7.Swift initialize问题

当Swift的类是继承于OC类的时候,initialize方法是可以被重载的。如果是一个Swift的类则可以在init方法里使用disptach_once来确保部分代码仅运行一次。

8.Swift KVO

Swift内默认禁止动态派发,如果使用KVO,我们需要把Swift类的属性标记为dynamic。
[官方例子](Using Swift with Cocoa and Objective-C: KVO Observing)
如果是继承于OC的类则可以直接使用KVO。

9.单例模式 VS 静态方法

单例模式: 可以延迟加载,继承父类。
静态方法: 直接加载到内存。
一般来说,我还是用单例模式比较多。

10.测试后台给的API时候有什么好用的工具

Postman

11.使用AutoLayout做Cell的自适应高度布局

注意需要补全cell内的约束(上,下,左,右)都需要。
注意需要把tableview的高度设置为tableView.rowHeight = UITableViewAutomaticDimension
而且代理方法override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat返回UITableViewAutomaticDimension.

12.AutoLayout中的“Content Compression Resistance”和“Content Hugging”

“Content Compression Resistance Priority”,也叫内容压缩阻力优先级(小名:别挤我),该优先级越高,则越晚轮到被压缩。
“Content Hugging Priority”,也叫内容紧靠优先级(小名:别扯我),该优先级越高,这越晚轮到被拉伸。
更详细,戳这里

相关文章

网友评论

      本文标题:This Year

      本文链接:https://www.haomeiwen.com/subject/nuuskttx.html