[email protected]关键字

//
//  ClassB.h
//  [email protected]关键字
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ClassA.h"

@interface ClassB : NSObject
{
    ClassA *_a;
}

@property (copy,nonatomic)NSString *nameB;

- (void)printClassB;

@end

//
//  ClassB.m
//  [email protected]关键字
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "ClassB.h"

@implementation ClassB

- (void)printClassB
{
    NSLog(@"name = %@", _a.nameA);
}

@end
//
//  ClassA.h
//  [email protected]关键字
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
//#import "ClassB.h"//
@class ClassB;

@interface ClassA : NSObject
{
    ClassB *_b;
}

@property (copy,nonatomic)NSString *nameA;

- (void)printClassA;

@end

//
//  ClassA.m
//  [email protected]关键字
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "ClassA.h"
#import "ClassB.h"

@implementation ClassA

- (void)printClassA
{
    NSLog(@"%@", _b.nameB);
}

@end
//
//  main.m
//  [email protected]关键字
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ClassA.h"
#import "ClassB.h"

//A-->B  B-->A
//#import 关键字 引用类的类型及类中定义的方法,包含在头文件中,可能导致循环包含,需要用@class打断循环链

//@class 关键字, 只引用类的类型不引用类中的方法,如果要使用类中的方法,需要在对应的.m文件中用#import包含

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

    }
    return 0;
}
时间: 2024-11-08 15:52:06

[email protected]关键字的相关文章

(转载)OC学习篇之[email&#160;protected]关键字的作用以及#include和#import的区别

前一篇文章说到了OC中类的三大特性,今天我们来看一下在学习OC的过程中遇到的一些问题,该如何去解决,首先来看一下我们之前遗留的一个问题: 一.#import和#include的区别 当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误 但是使用两次#import的话,不会报错,所以他可以解决重复导入的问题,他会做一次判断,如果已经导入一次就不导入了 二.关键字@class的作用 在来看一下OC中的关键字@class的作用,在

OC学习篇之[email&#160;protected]关键字的作用以及#include和#import的区别

前一篇文章说到了OC中类的三大特性:http://blog.csdn.net/jiangwei0910410003/article/details/41707161今天我们来看一下在学习OC的过程中遇到的一些问题,该如何去解决,首先来看一下我们之前遗留的一个问题: 一.#import和#include的区别 当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误 但是使用两次#import的话,不会报错,所以他可以解决重复导入

O-C相关-[email&#160;protected]关键字简介与使用

基本概念:在O-C中,创建完类之后还需要给一个类添加属性和方法,之前说过的set和get方法比较繁琐,因此引入了@property 这个编译器指令.@property 是一个编译器指令.所谓的编译器指令, 即告诉编译器如何处理内容, 要做什么.@property 告诉编译器声明读写器( getter 方法与 setter 方法) 1.在今天的 Xcode 中, @property 可以同时生成实例变量, 方法的声明以及方法的实现. 2, 重写 getter 方法与 setter 方法 虽然 @p

Delphi 调用C/C++的Dll(stdcall关键字, 会导致函数名分裂. 此时函数名变成[email&#160;protected])

delphi调用C++写的Dll, 当然这个Dll要求是非MFC的Dll, 这样子才能被delphi调用. 根据C++定义函数的情况, Delphi有不同的相对应的处理方法.1. 声明中不加__stdcall,采用VC默认格式__cdecl,但在Delphi中要注明调用格式为cdecl.C++中例子: [cpp] view plain copy print? extern "C" int __declspec(dllexport) add(int x, int y); Delphi中例

【Shell】linux中shell变量$#,[email&#160;protected],$0,$1,$2的含义解释 &amp;&amp; set 关键字使用

linux中shell变量$#,[email protected],$0,$1,$2的含义解释 摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定

[email&#160;protected]一个高效的配置管理工具--Ansible configure management--翻译(六)

无书面许可请勿转载 高级playbook Finding files with variables All modules can take variables as part of their arguments by dereferencing them with {{ and }} . You can use this to load a particular file based on a variable. For example, you might want to select a

[email&#160;protected]动态代理-类加载器

一.测试单元     概述:用于测试JAVA代码的工具类,已内置在Eclipse中;     格式:         1.在方法的上面添加@Test;         2.对被测试的方法的要求:权限-public;返回值-void;参数-空参         [email protected]:在@Test标注的方法前执行,可以用于初始化;           @After:在@Test标注的方法后执行,可以用于释放资源; 二.注解     概述:java的一种数据类型,和类/接口在同一级别  

15-02-28-协议[email&#160;protected] 接口

// //  main.m //  05-protoco // //  Created by apple on 13-8-11. //  Copyright (c) 2013年 itcast. All rights reserved. // /* 1.协议的定义 @protocol 协议名称 <NSObject> // 方法声明列表.... @end 2.如何遵守协议 1> 类遵守协议 @interface 类名 : 父类名 <协议名称1, 协议名称2> @end 2>

OC基础[email&#160;protected]后的修饰符及其用法小结

[email protected]后的修饰符 strong : 该属性值对应 __strong 关键字,即该属性所声明的变量将成为对象的持有者,等同于"retain" weak : 该属性对应 __weak 关键字,与 __weak 定义的变量一致,该属性所声明的变量将没有对象的所有权,并且当对象被释放之后,对象将被自动赋值nil,记住IBOutlet应该使用weakcopy : 和之前的copy一样,复制一个对象并创建strong关联assign : 对象不能使用assign,但原始