zoukankan      html  css  js  c++  java
  • Objective-C基础

    1.C语言面向过程,OC面向对象

    2.第一个OC程序

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            // insert code here...
            NSLog(@"Hello, World!");
        }
        return 0;
    }

    1)import引入头文件可以防止重复包含

    2)Foundation/Foundation.h文件包含了很多头文件,引入这个等于把OC的库文件都引过来了

    3)@autoreleasepool

    4)NSLog与printf比较

    NSLog自动换行,printf不会

    NSLog会输出时间等项目信息,printf不会输出调试信息

    NSLog函数的参数是一个NSString对象,printf是一个字符串常量指针

    NSLog打印字符串用%@,NSString *Str1=@"ancc";NSLog(@"%@",str1);printf用%s

    3.@""代表字符串

    4.文档注释

    /**

    *

    **/

    5.增强型for循环

    6.类的定义

    //
    //  main.m
    //  OC1
    //
    //  Created by fanyafang on 15/10/30.
    //  Copyright © 2015年 itcast. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    #pragma mark Person类
    @interface Person : NSObject
    {
        @public
        int _age;
        NSString *_name;
    }
        -(void)getAge;
    
    @end
    
    
    @implementation Person
        -(void)getAge{
            NSLog(@"dddd");
        }
    @end
    
    #pragma mark 
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
    Person *p=[Person new]; p->_age=10; NSLog(@"%d",p->_age);

          [p getAge];

        }
        return 0;
    }

    7.内存的理解

    代码区:存放类定义,加载一次

    堆区:存放实例变量,保存了代码区类的地址

    栈区:存放对象

    8.NSString的用法:

    1)创建字符串的方法

    NSString *asstring=@"This is a String!";

    NSString *s=[NSString new];

    NSString *imgName=[NSString stringWithFormat:@"xxxxxxxx%02d.jpg",i];//格式化创建字符串

    NSString *s2=[[NSString alloc] initwithString:s1];//用一个已经存在的字符串创建一个新的字符串

    2)输出一个字符串

    NSLog(@"%@",asstring);

    3)字符串长度计算方法

    C语言中用strlen函数

    OC中用NSUInterger len=[s1 length];//NSUInterger无符号长整型

    1个汉字按1个长度计算

    9.OC的多文件开发

    头文件和类实现文件分开编写,用import包含

    10.类方法的学习

    11.匿名类

    使用匿名类调用类方法:[[Car new] stop];

    [Car new]等价于[[Car alloc]init]

    匿名类的优点:可以简化代码,方便方法的调用;缺点:匿名对象实例化后只能正确的使用成员变量一次。

     12.get-set方法的编写

    13.对象之间的关系:

    组合(葡萄) 依赖(一个对象的方法参数是另一个对象) 关联(拥有,一个类的成员是另一个类的对象)

    13.OC中没有重载,类的方法不能同名

    14.static的用法

    1)在方法中延长变量的生命周期

    2).h中定义的实例变量不能定义为static

    3)不能用static修饰方法

    4)在实现类中定义全局static变量,只在当前文件中有效

    5)在接口类中定义全局static变量,只在当前文件中有效

    15.self的使用

    1)对象方法中,调用另一个对象方法

    2)在类方法中,调用另一个类方法

    3)修饰变量-在set方法中,形参与实例变量名称相等,用self取实例变量

  • 相关阅读:
    VLC播放器web插件接口(Part1)
    视频监控/存储系统设计要点
    CVR并发写入测试
    Darwin Streaming Server性能测试报告
    用Red5搭建支持WEB播放的实时监控视频
    RTSP协议-中文定义
    网格最短路径算法(Dijkstra & Fast Marching)
    三维网格精简算法(Quadric Error Metrics)附源码
    三维网格细分算法(Catmull-Clark subdivision & Loop subdivision)附源码
    网格测地线算法(Geodesics in Heat)附源码
  • 原文地址:https://www.cnblogs.com/fanglove/p/4922882.html
Copyright © 2011-2022 走看看