• OC类中一些细节问题(对象类存储、类中结构体的用法)


    一:OC中得方法名

    注意:方法名冒号和后面的and方法名冒号  都是方法名
     

    一:对象的存储细节

        类加载到代码区(包括类中得属性和方法)、对象动态加载到堆内存中、指向对象的指针存放在栈区。

    三:定义类常见的错误

    定义类的时候,常见的错误

     1)类的定义不能嵌套

     2)不要漏写 @end

     3) 不要忘记写实现类(如果忘记写了,编译不会报错,运行时候才报错)

     4)定义成员变量的大括号经常漏写

     5) 如果不写@interface 只有 @implementation 这可以,但是会报警告,建议不要这么写

     6)把方法的声明写到了声明成员变量的括号中了

    四:类中结构体的问题:

    #import <Foundation/Foundation.h>

    typedef struct {

        int year;

        int month;

        int day;

    }MyDate;

    //类的声明

    @interface Student : NSObject

    {

        @public

        NSString *_name;

        MyDate _birthday;  //MyDate是一个结构体

    }

    @end

    //类的实现

    @implementation Student

    @end

    int main(int argc, const char * argv[])

    {        

            //实例化对象 stu

            Student *stu = [Student new];

            //赋值

            stu->_name = @"雷阵子";

    //        stu->_birthday = {1999,11,11}  这种写法不行,_birthday在对象创建的时候,已经被初始化为0,不能在整体初始化了

    //        stu->_birthday.year = 1999;

    //        stu->_birthday.month = 11;

    //        stu->_birthday.day = 11;        

            //d1是一个结构体变量

            MyDate d1={1988,11,11};

            //把d1的值拷贝一份给_birthday

            stu->_birthday = d1; // 值传递

    比如:/*

    MyDate date = {1990,3,9};

            date = {1999,9,9};  // 会报错,就是结构体初始化后不能在定义

    */

    五:NSString

     NSString 的用法

         NSString 是OC的一个字符串类

     1)NSString 存放OC的字符串

        NSString *str = @"l love china!";

     2)既然是类,我们就可以实例化一个对象

        NSString *s = [NSString new];

                      1)分配空间  2)初始化   3)返回地址

        s = @"I love itcast";

     3)格式化字符串   

        NSLog(@"%d,%f",a,b);

        NSString *s2=[NSString stringWithFormat:@"xxxxx_%02d.jpg",i];

            str = @"你好中国china!";

            //计算字符串的长度的一个方法

            //OC的字符串长度计算方法

            //1、[str length],没有包含 ,就是实际的字符的个数

            //2、把中文的一个汉字和普通的字母都当做1个字符

            NSLog(@"str len = %lu",[str length]);        

            //c语言中的字符长度

            //1、普通字符占1个字节

            char *sss="China!";

            //2、一个汉字占3个字节(UTF-8编码),一个字符还是占用1个

            sss = "中国china!";

  • 相关阅读:
    Class类
    HTML表单格式化
    HTML表单组件
    html常用标签
    Html概述
    Myeclipse2016安装Aptana
    长元音
    对比法记音标
    Java基础八--构造函数
    WPS2012交叉引用技巧,word比wps这点强更新參考文献
  • 原文地址:https://www.cnblogs.com/-boy/p/4065783.html
Copyright © 2020-2023  润新知