美文网首页Swift初体验
Swift-一些小的知识点

Swift-一些小的知识点

作者: Raaaaamsey | 来源:发表于2016-04-15 23:12 被阅读70次

    随意记录一些在学习iOS编程或者swift的时候碰到的一些小知识点,记录下来以备不时之需。


    这部分主要是学习高仿小日子的时候的一些笔记

    1. NSBundle

    NSBundle是一个继承自NSObject的类,这个类的对象主要的作用是帮助你访问硬盘上的捆绑包目录里的代码和资源(An NSBundle object helps you access the code and resources in a bundle directory on disk)。苹果使用捆绑包来呈 现app,框架,插件和其他特定类型的内容。捆绑包将他包含的资源organise在定义的非常好的子目录里,并且捆绑包的 结构根据不同的平台或者捆绑包的类型不同。通过使用一个bundle类的对象,你可以在不清楚捆绑包结构的前提下访问他 所包含的资源。考虑到捆绑包的结构,用户特性,可用的定位以及其他的一些因素,bundle类的对象提供一个单一的接口 用来定位名目(items)。

    当你需要定位资源的时候,不论是在一个app的捆绑包内还是在一个已知位置的捆绑包内,你都可以使用NSBundle这个类的对象。在一个容器目录里或者文件系统的其他部分,不用NSBundle这个类的对象。
    下面是使用这个类的对象的通用做法:

    1. 为想要用的捆绑包目录创建一个这个类的对象。
    2. 使用它的方法来定位或者加载所需要的资源。
    3. 使用其他系统API来与这些资源交互。

    最主要使用的一个方法:
    + mainBundle:返回一个bundle对象,这个对象包含正在执行的内容。(一般也就是这个app所在的目录)

    swift
    class func mainBundle() -> NSBundle
    infoDictionaryProperty

    infoDictionary这个属性是从bundle的info.plist这个文件中创建的一个字典,这个字典包含接受者的一些信息。
    A dictionary, constructed from the bundle's Info.plist file, that contains information about the receiver. (read-only)

    1. NSUserDefaults

    这里有一篇文章讲解的很好

    1. 属性监视器willSet和didSet

    看了这篇文章就什么都懂了
    这篇文章也有个小补充

    1. 屏幕分辨率

    方便适配图片,你需要知道这些东西

    1. NSNotificationCenter

    如果想要了解iOS的消息通知机制,我觉得你可能需要学习下这篇文章,当然还有这篇这篇也是不容错过的。

    1. APPDelegate

    APPDelegate是创建一个新工程后自动生成的,他主要完成的是对整个application的生命周期的管理的功能。
    具体的讲解如果你看了这篇文章,应该很清楚他在做什么。当然这篇文章也有些小补充可以看下。

    1. UITabbarController

    最常见的创建UITabBarController的地方就是在APPDelegate中的 applicationDidFinishLaunching:方法,因为UITabBarController通常是作为整个程序的rootViewController的,我们需要在程序的window显示之前就创建好它。程序的rootViewController通常需要在APPDelegate中创建好,因为需要在window显示之前就要准备好。这篇文章或许可以帮助你更好的理解它。

    1. UINavigationController

    UINavigationController是IOS编程中比较常用的一种容器view controller。 看了这篇文章之后,你应该就会对它比较了解了。

    1. deinit

    反初始化函数,你可能需要这篇文章

    1. 类型属性

    关于swift语法中的属性,你应该知道这些,或者这篇

    1. 单例

    你应该阅读这篇文章,来了解swift中的单例,也可以是这篇文章

    1. UICollectionView和UICollectionViewLayout

    这篇文章还有这篇文章可以帮你了解。

    1. NSPredicate

    看看这篇文章或许你能懂多点,或者这个.

    1. 正则表达式

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。看看这个,这篇文章教你怎么用正则表达式。这里还有一些很棒的tips。

    1. SVProgressHUD

    一款轻量级的 iOS 第三方控件, 用于显示任务加载时的动画, 非常轻便, 容易使用.这几篇文章挺好的。
    这个,这个,还有这个.

    1. MD5 in swift
      这里有文章

    his is what I came up with. It's an extension to String. Don't forget to add #import <CommonCrypto/CommonCrypto.h>
    to the ObjC-Swift bridging header that Xcode creates

        extension String  {
    
        /// 返回字符串的 MD5 散列结果
    
        var md5: String! {
        
          let str = self.cStringUsingEncoding(NSUTF8StringEncoding)   // 把string转换成c-string的形式,使用特定的编码方式
        
          let strLen = CC_LONG(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)) // Returns the number of bytes required to store the String in a given encoding.
        
          let digestLen = Int(CC_MD5_DIGEST_LENGTH)
        
          let result = UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)   // Allocate memory for num objects of type Memory. 分配内存后用一个指针指向这个内存地址,内存大小跟前面的类型参数有关
    
          CC_MD5(str!, strLen, result)    // 给result进行md5散列
        
          let hash = NSMutableString()
          for i in 0..<digestLen {
              hash.appendFormat("%02x", result[i])    // 把指针存储到这个可变数组中
          }
        
          result.dealloc(digestLen)   // 释放指针指向的内存 
          return hash.copy() as! String   // 返回这个可变数组
          }
        }
    
    1. NSSearchPathForDirectoriesInDomains

    看下这篇文章吧

    1. UIActionSheet

    UIActionSheet 可以弹出一个选择列表,让用户选择列表中的某一项操作。
    关于actionSheet,建议看下唐巧的这篇博文

    1. clipsToBounds

    决定了子视图的显示范围。具体的说,就是当取值为YES时,剪裁超出父视图范围的子视图部分;当取值为NO时,不剪裁子视图。默认值为NO。

    1. UIBezierPath

    看下这篇文章,或者这篇文章,这个.

    1. 摇一摇功能,相册中选择相片功能

    这篇文章可以直接拿来用。

    1. 绘图

    先看看这篇文章有个大概的了解吧。

    1. NSFileManager 程序沙盒管理

    这里这里,看看就大概了解了。

    1. try?

    先看下这篇文章这篇文章.

    1. UIApplication

    这个这个, 还有这个
    这里面讲了如何调用其他APP的。

    1. NSNotification

    一般来说,通知的添加与移除应该是成对出现的,在viewdidappear中add observe,在viewdiddisappear中remove,这样就不会重复添加。但是,ios7之后添加了手势,当通过手势操作VC的时候,比如从屏幕左边沿往右滑VC,但不要触发pop出去,这时候viewdidappear会重复出现,但viewdiddisappear一次也不出现,会导致重复添加。所以正确的做法是在add observe之前需要检查并移除,这样就不会重复添加了。

    相关文章

      网友评论

        本文标题:Swift-一些小的知识点

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