zoukankan      html  css  js  c++  java
  • 零碎知识点整理

    一、常用用UIImage加载图像的方法有:

    1、用imageNamed函数(适用于图片频繁使用场景

    [UIImage imageNamed:ImageName];

    用imageNamed的方式加载时,系统会把图像Cache到内存。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存,而且释放图像的 内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组NSMutableArray,然后将将数组赋予一 个UIView的对象的animationImages进行逐帧动画,那么这将会很有可能造成内存泄露。并且释放图像所占据的内存也不会那么简单。但是利 用imageNamed加载图像也有自己的优势。对于同一个图像系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的。例如:你需要在 一个TableView里重复加载同样一个图标,那么用imageNamed加载图像,系统会把那个图标Cache到内存,在Table里每次利用那个图 像的时候,只会把图片指针指向同一块内存。这种情况使用imageNamed加载图像就会变得非常有效。

    2、用NSData的方式加载,例如:(适用于图片大,且使用地方少

       1. NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
       2. NSData *image = [NSData dataWithContentsOfFile:filePath];
       3. [UIImage imageWithData:image];

    利用NSData方式加载时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。

    注意:无论用哪种方式加载图像,图像使用结束后,一定要记得显示释放内存。

    二、NSBundle的理解

    NSBundle就是定位文件路径的类,返回的是文件所在路径的绝对地址。

    三、DEBUG与RELEASE分别是调试版本和发布版本。

    有时在调试版本可以通过,但是发布版本却出现问题,需要更深一步的检查问题。在代码中会出现#ifdef DEBUG #endif

    四、Encode和Decode

    1、Encode是编码,关于URL 编码是为了符合url的规范。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。例如在baidu中搜索"测试汉字"。 URL会变成:

    http://www.baidu.com/s?wd=%B2%E2%CA%D4%BA%BA%D7%D6&rsv_bp=0&rsv_spt=3&inputT=7477

    所谓URL编码就是: 把所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)

    2、Decode是解码,一般是服务端的工作,与编码过程相反。

  • 相关阅读:
    Linux 下的类似Windows下Everything的搜索工具
    windows和linux环境下制作U盘启动盘
    程序调试手段之gdb, vxworks shell
    LeetCode 1021. Remove Outermost Parentheses (删除最外层的括号)
    LeetCode 1047. Remove All Adjacent Duplicates In String (删除字符串中的所有相邻重复项)
    LeetCode 844. Backspace String Compare (比较含退格的字符串)
    LeetCode 860. Lemonade Change (柠檬水找零)
    LeetCode 1221. Split a String in Balanced Strings (分割平衡字符串)
    LeetCode 1046. Last Stone Weight (最后一块石头的重量 )
    LeetCode 746. Min Cost Climbing Stairs (使用最小花费爬楼梯)
  • 原文地址:https://www.cnblogs.com/zhouyi-ios/p/5226194.html
Copyright © 2011-2022 走看看