zoukankan      html  css  js  c++  java
  • Object-C(自学1)

    ----- 需求索要 自学了下 OBJECt-C  -----

    就基础部分一些 和操作

    command + R 运行
    command +B 只编译.m文件

    NSlog() = printf
    NSLog 是自动换行的

    #import <Foundation/Foudation.h>
    <> 引用的是我们系统的库,找到就有


    #import "Person.h"

    //""引用的是我们自己的类

    .h文件只负责声明 不实现
    .m文件实现声明的方法

    在Main
    // 类名 *变量的名字 = [[类名 alloc]init]
    Person *per = [[Person alloc]init];
    [Per eat];

    -(void)eat;
    //对象方法命名规则
    1.以-号开头
    2.所有的数据类型放在()里面,而且只有数据类型放在()里面。
    3.方法名准驼峰原则。

    带参数的方法命名规则
    1.对象命名前3条准守
    2.一个参数带着:号,冒号写在参数类型前面
    3方法名想写个句子:
    -(void)eatApp:(int)num;

    Person *per = [Person new];
    [per run];
    [per eatApp:5];


    set get 方法
    -(void)setAge:(int)age{
    _age = age;
    }


    //**set方法
    1.以-号开头
    2.不需要返回值
    3.set开头,后面是对象的成员变量去掉下划线首字母大写
    4.只有一个参数
    -(void)setAge:(int)age;
    //get 方法为了取值的
    1.以-号开头
    2.返回值类型对应成员变量的类型
    3.方法名为对应成员变量去掉下划线部分
    4.不需要参数
    -(int)age;

    ->指向符
    直接赋值 通过->直接给属性赋值,会得到脏数据(了解)

    类:不需要声明一个对象(实例)就可以直接调用的方法,有返回值
    // 对象方法求2个和
    -(int)sumWithNum1:(int)num1 andNum2:(int)num2;
    //类方法求和
    1.以+开头
    2.其他规则与对象方法的规则(除去第一条)相同
    +(int)sumWithNum3:(int)num3 andNum4:(int)num4;

    //對象方法中可以直接使用成員變量
    //类方法中不能直接使用成员变量
    int sum=num3+sum4;

    Person *per = [Person new];
    int sum = [cal sumWithNum1:5 andNum2:6];
    对象方法:
    》对象调用
    》以-号开头
    》可以直接使用成员变量
    》可以调用自己的对象和类方法

    //类方法
    》有类名调用
    》以+号开头
    》不能直接使用成员变量
    》用作工具方法
    》只能调用自己的类方法,不能调用自己对象方法


    ----点语法 :就是set get 方法
    赋值不这么写
    //[per setAge:18];
    per.age = 18;


    --property(合成存储器)。
    // 组成: @property 对应成员变量的类型 对应成员变量去掉下划线后的部分
    //作用; 自動生成对应的成员变量的set . get 方法的定义
    @property int houseNum;

    对应的 synthesize 对应的方法名
    --property(加强版)
    @property(nonatomic,assign)int houseNum;

    ----继承(继承父类的)
    如果成员变量可以被继承,需要手动生成

    --super:代表是父类的对象指针或者父类类名
    使用场合:在子类中调用父类中方法
    [super run]
    先调用父类的 如果子类还有在调用子类的
    ----重写(子类和父类同名 ,优先执行子类中同名的方法)
    目的(为了在与父类同名方法中完成一些自己的功能)

    -----self(用来表示OC中的类名或者对象指针)
    1.在对象方法中代表对象指针(自己)(谁调用的对象方法,那么self就代表谁)
    在类方法中代表类名
    2.可以调用方法和成员变量
    3.禁止用自己(死循环)

    字符串 NSString *string1 =@"样安抚"
    //%d %f 基本的数据类型的占位符
    %@ 代表打印的对象
    stringWithFormat (格式化拼接字符串)
    重写desciption 方法
    目的(当一个对象的属性很多时,并且需要打印,那么就重写description,达到简写代码)

    ----变量作用域
    @public 整个程序
    @protected 本类和子类中
    @private 本类中(用property自动生成)
    @package 包内部

    多态:一种事物的多种形态(前提:继承)
    父类类型的指针指向子类对象 Animal *an = [Dog new];


    ----- 构造方法:
    开辟内存空间 alloc
    初始化 init
    返回地址 init

    以init开头,必须准守驼峰原则
    id:万能指针,可以指向任意的对象 -(id)initwithAge:(int)age;

    -(id)init{
    1.判断self 是否为上一步初始化
    2.添加自己类的功能
    3.将自己返回
    }

    NSMakeRange(5,2)区间
    NSMutable
    --ObjectAtIndex

    可变数组: NSMutableArray *phoneArray;


    ----单例
    很霸道,很专一
    定义:一个类,只允许通过“类方法”创建一个对象,调用这个类属性和方法时
    只能通过这一个对象去调用,
    作用:1.保值 :static
    2.建立一个公共的访问点,在需要使用的时候调用即可

    static Card *sing =nil; ( static 保存上一步的sing的数据)


    -----NSData类 一种数据类型
    //在传输数据时,传输的是二进制文件

    ---------协议:一组方法的列表
    特点:只有定义,没有实现。实现在准守(引用)了该协议的类的.m文件
    实现部分里面 (可以删了.m文件)
    霸道
    构成: NSObject:基协议
    @protocol 协议名<NSObject>
    方法定义的列表
    @end


    -------代理 :委托,是一种设计模式

    协议一般放到主动的类中(有需求的类) (懶惰的類)
    被动类: 代理类
    协议代理名 :当前类名Delegate


    -----自动释放池
    在main.m @autoreleasepool {
    本质上是一个数组,用来存储多个对象,在离开释放池的时候
    系统会自动的给池中每个对象发送一个release 消息
    }

    // 堆和栈
    栈 堆
    person *per = [[Person alloc]init];
    根本区别: 栈趋于低的内存空间 不连续
    堆趋于高的内存空间 连续空间


    // 进程:
    在系统中正在运行的一个应用程序

    //多线程
    一个进程可以开启多条线程,每条线程可以并行折行不同的任务

    //主线程
    NSThread *mainThread = [NSThread mainThread];


    // NSURLSession
    使用创建TASK ,然后执行Task
    nsurlsessionDataTask (请求)
    download (下载)
    upload(上传)

    //AFN 简单介绍

  • 相关阅读:
    jdbc连接Sql server数据库,并查询数据
    HttpClient,post请求,发送json,并接收数据
    SQL SERVER存储过程一
    HttpClient,get请求,发送并接收数据
    工作中操作数据库实例
    存储过程的实例(公司)
    eclipse发布项目后,项目所在的位置
    SQLSERVER存储过程基本语法
    SAXReader解析
    导包
  • 原文地址:https://www.cnblogs.com/yf-html/p/11888384.html
Copyright © 2011-2022 走看看