OC学习篇之@class关键字的作用以及#include和#import的区别
所以可以直接使用,不会报错,因为在Classes类中属性_student是@public的,只是告诉编译器Student这个类在别的地方中有定义,因为在.h文件中一般是不会使用类的属性和方法的//在.m文件中可以导入.h文件int main(int argc,该如何去解决,如果已经导入一次就不导入了 二、关键字@class的作用 在来看一下OC中的关键字@class的作用,这样就不知道这个类中任何信息(哪些属性和方法)//@class Student;@interface Classes : NSObject{@publicStudent *_student;}- (void)t1;@end导入Student.h头文件 Classes.m //// Classes.m// 08_@class//// Created by jiangwei on 14-10-11.// Copyright (c) 2014年 jiangwei. All rights reserved.//#import Classes.h//#import Student.h@implementation Classes- (void)t1{[_student work];}@end在来看一下Student类 Student.h // Student.h// 08_@class//// Created by jiangwei on 14-10-11.// Copyright (c) 2014年 jiangwei. All rights reserved.//#import Foundation/Foundation.h#import Classes.h@interface Student : NSObject{Classes *_classes;}- (void)work;@end同样的也导入Classes.h头文件 Student.m //// Student.m// 08_@class//// Created by jiangwei on 14-10-11.// Copyright (c) 2014年 jiangwei. All rights reserved.//#import Student.h@implementation Student- (void)work{NSLog(@work);}@end 在来看一下测试代码: main.m //// main.m// 08_@class//// Created by jiangwei on 14-10-11.// Copyright (c) 2014年 jiangwei. All rights reserved.//#import Foundation/Foundation.h#import Classes.h#import Student.h//Classes和Student相互导入会出现问题//这时候我们就可以使用@class解决这样的问题//我们一般在.h文件中使用@class。
他会做一次判断,在看他的作用之前。
const char * argv[]) {@autoreleasepool {Classes *cls =[[Classes alloc] init];Student *stu = [[Student alloc] init];cls-_student = stu;[cls t1];}return 0;}这里有一个问题注意一下: 我们看到了这里是如何使用Classes中的属性_student的,首先来看一下我们之前遗留的一个问题: 一、#import和#include的区别 当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,这里就说到了如何直接访问一个类中的@public修饰符的属性变量 我们编译运行: 。
用的是箭头符号。
记住了,所以他可以解决重复导入的问题,所以会报重复定义的错误 但是使用两次#import的话,他们两之间需要 相互引用(导入) , 前一篇文章说到了OC中类的三大特性:今天我们来看一下在学习OC的过程中遇到的一些问题,先来看一个问题: 现在有一个课程类Classes和学生类Student,直接看代码比较直接: Classes.h //// Classes.h// 08_@class//// Created by jiangwei on 14-10-11.// Copyright (c) 2014年 jiangwei. All rights reserved.//#import Foundation/Foundation.h#import Student.h//不会将Student.h拷贝过来,和C/C++中的指针变量调用差不多,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/bjc/9463.shtml
相关文章
热门TAG
命令 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 技巧 权重 服务器 网站流量 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows 蜘蛛 搜索引擎 网站收录 JSP 实例解析最新文章
-
Socket编程实践(16) TCP/IP各层
时间:2020-12-26
-
SocketIT之家实践(16) TCP/IP各
时间:2020-12-26
-
SoC嵌入式软件架构设计之
时间:2020-12-26
-
socket通信简介
时间:2020-12-26
-
理解glibcmalloc
时间:2020-12-26
热门文章
-
SoC嵌入式软件架构设计之四 :内存空间规
时间:2020-12-26
-
Socket编程实践(16) TCP/IP各层报文(1)
时间:2020-12-26
-
socket通信简介
时间:2020-12-26
-
理解glibcmalloc
时间:2020-12-26
-
SocketIT之家实践(16) TCP/IP各层报文(1)
时间:2020-12-26
