• IOS开发常见注意点


     

    - (instancetype)initWithUrl:(NSURl *)url;

    1.反向传值的方式

    *delegate

    *block

    *通知中心

    2.delegate:找对象,没有的话定义delegate

    3.block(回调)

    *好处:可以访问局部变量

    4.大名鼎鼎的网络请求类

    *ASIHTTTPRequest

    *AFNetWoking

    5. - 代理方法和-代理方法

    #pragma mark - 代理方法(大)

    #pragma mark -setting(包含在- 代理方法下面即子部分)

    6.如何在对象方法中调用类方法

    + (void)test{

        // 同过class 得到类再进行操作

    }

    7.沙河的三个目录:

    *Document (保存重要数据)

    *Cache  (一般图片数据)

    *Tmp

    注:其他路径最好不要存,有权限

    8.md5是一个不可逆的加密

    9.NACache 类:当内存发生警告的时候,系统会自动清空数据

    10.NSURL对象初始化注意:

    *url里面有空格。

    *url里面不能有汉字。

    //如果url里面有汉字,需要编码

    //有中文需要utf8编码

    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    11.NSURLConnection注意点

    #pragma mark - NSURLConnection

    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

    {

        //1.文件名字

        NSString *fileName = [response suggestedFilename];

        //2.文件大小,单位字节

        long long fileSize = [response expectedContentLength];

        //3.文件类型

        NSString *type = [response MIMEType];

        //4.状态码

        //200 请求成功;206 断点续传 403:收到请求但拒绝执行 404:请求失败

        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

        NSInteger code = httpResponse.statusCode;

        //5.响应头信息

        NSDictionary *headerFields = [httpResponse allHeaderFields];

    }

    12.NSFileHandle (句柄)

    *文件句柄如果path不存在或者是个文件夹路径,当前句柄为空

    *path必须是某个文件

    *写入时应该将句柄移动到尾部,

    13.公共类大家都可以调用,且方便调用,都是类方法

    14.absoluteString 将NSURL转化为字符串

    15.JSonKit MRC下使用

       ASIHtTTPRequest

       AFNetWorking

    16.nonatomic 非原子,访问速度快

       atomic 原子,对Setter方法加锁,访问速度慢 ,消耗性能

     

    17.永久保存:

    1.NSUserDefaults:

    *用来存储bool,double,float,integer,int,NSURl

    NSArray,NSDictionary,NSMutableArray,NSNumber

    NSMutableDictionary,NSString

    *一般在项目里面配置,(是否程序第一次安装,是否自动登录,保存用户名,保存密码)

    *不能保存自定义对象:比如模型,自定义存入数组也不能有

    *同步保存 synchronize

    *如果key已经存在,会覆盖原来的值

     2.归档(序列化)

     3.文件保存

     4.数据库

    18.如果修改了系统库,进入build phases - > link

     先添加进来,然后在Finder filed 替换掉

    19.只有在入build phases - >copy boundle里的才能用

    [NSBundle mainBundle] pathForResource:@"user" ofType:@"plist"];

    20,NSNull,Nil,nil

    NSNull :一个空的对象

    Class clss = Nil; 表示一个类为空

    NSObject *object = nil; 表示一个对象为空

    22.文件保存

    1.plist

    2.NSDictionary

    3.text,doc

    4.NSData

    23.使用数据库步骤

    1.创建数据库并且打开数据库

    2.创建表

    3.增删改查

    4.关闭数据

    24.UITableView 和UICollectionView使用自定义是必须首先要注册

    25.取消警告,在编译arc - mrc的敌方加 -w

    26.修改键盘的return键

    self.textField.returnkeyType = UIReturnNext;

    27.隐藏键盘

    1.添加点击手势

    1>.结束编辑(无需知道到底哪个视图调用了键盘,就可取消)

    [self.view endEditing:YES];

    2>.取消第一响应者(有多个textField,需要区分时使用)

    [self.textField resignFirstResponder];

    2.添加点击事件

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

        

        1>.结束编辑(无需知道到底哪个视图调用了键盘,就可取消)

        [self.view endEditing:YES];

        2>.取消第一响应者(有多个textField,需要区分时使用)

        [self.textField resignFirstResponder];

    }

    28.关联:为现有的类别添加方法

    /**

     *  关联

     *  1.传值

     *  2.给类别添加属性

     */

    //关联(赋值)

    objc_setAssociatedObject(button, &message, array, OBJC_ASSOCIATION_COPY_NONATOMIC);

    //取值

    id obj = objc_getAssociatedObject(button, &message);

     

    29.app之间的跳转

    info.plist - > URL types - >URL Schemes - >oneApp

     

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"URL Schemes:(冒号必须加,双斜杠可以不加)//URL identifier?(可以加参数)xxx=111"]];

    例:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"oneApp://com.qianfeng?xxx=111"]];

    /**

     *  从其他app跳转回来会触发,或者在其他app里面通过openUrl:调用当前应用此方法会触发。

     */

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

    {

        // 获取传回来的参数

        NSLog(@"---%@",[url absoluteString]);

        return YES;

    }

    30.打电话

    // 方式一

    // 缺点:不能返回到的当前应用

    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"tel:10086"]];

     

    // 方法二

    // 拨打完后会自动返回到当前应用,拨打之前会有提示

    UIWebView *webView = [[UIWebView alloc]init];

    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel:10086"]]];

    [self.view addSubview:webView];

    31.代码创建antoLayout注意点

    1.不能设置frame

    2.不能使用autoResizing

    3.添加到父视图中后使用

  • 相关阅读:
    UNIX文件结构(转自UNIX/AIX操作系统基础教程) 分类: B3_LINUX 20121016 22:52 781人阅读 评论(0) 收藏
    umask 分类: B3_LINUX 20121014 16:34 296人阅读 评论(0) 收藏
    Linux 最常用命令 分类: B3_LINUX 20121013 11:23 663人阅读 评论(0) 收藏
    Linux标准目录配置(转自鸟哥) 分类: B3_LINUX 20121014 16:56 620人阅读 评论(0) 收藏
    完美图解教程 Linux环境VNC服务安装、配置与使用 分类: B3_LINUX 20121126 18:35 419人阅读 评论(0) 收藏
    c语言中<stdbool.h>的使用 分类: H_HISTORY 20130203 21:46 1416人阅读 评论(0) 收藏
    vi操作指令 分类: B3_LINUX 20121018 22:35 446人阅读 评论(0) 收藏
    使用sys无法通过sqlplus或者sqldeveloper连接数据库 分类: H2_ORACLE 20130204 14:02 600人阅读 评论(0) 收藏
    Oracle学习计划 分类: H2_ORACLE 20130204 14:04 393人阅读 评论(0) 收藏
    在AIX环境为Oracle表空间增加裸设备(逻辑卷) 分类: B3_LINUX 20121224 12:24 1043人阅读 评论(1) 收藏
  • 原文地址:https://www.cnblogs.com/3WWanXiang/p/4894549.html
Copyright © 2020-2023  润新知