Objective-c

推荐列表 站点导航

当前位置:首页 > 脚本编程 > Objective-c >

OC学习篇之@class关键字的作用以及#include和#import的区别

来源:网络整理  作者:  发布时间:2020-12-26 17:12
前一篇文章说到了OC中类的三大特性:http: blog csdn net jiangwei0910410003 article details 41707161今天我们来看一下在学习OC的过...

所以可以直接使用,不会报错,因为在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

相关文章
最新文章
Socket编程实践(16) TCP/IP各层 Socket编程实践(16) TCP/IP各层

时间:2020-12-26

SocketIT之家实践(16) TCP/IP各 SocketIT之家实践(16) TCP/IP各

时间:2020-12-26

SoC嵌入式软件架构设计之 SoC嵌入式软件架构设计之

时间:2020-12-26

socket通信简介 socket通信简介

时间:2020-12-26

理解glibcmalloc 理解glibcmalloc

时间:2020-12-26

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

OC学习篇之@class关键字的作用以及#include和#import的区别

2020-12-26 编辑:

所以可以直接使用,不会报错,因为在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

相关文章

风云图片

推荐阅读

返回Objective-c频道首页