Objective的头文件@interface属性
来源:互联网 发布:中国外商投资的数据 编辑:程序博客网 时间:2024/06/03 19:20
1 前言
最近有个疑惑 @interface中的属性和@property声明的属性有什么区别呢,经过上网搜索和实践验证,个人总结了几点,共同学习一下。
2 详述
例子
PropertyModel.h
#import <Foundation/Foundation.h>@interface PropertyModel : NSObject{ NSString* sex; @public NSString* name; @private NSString* classes;}@property(nonatomic,copy)NSString* sexName;@property(nonatomic,copy)NSString* classesName;@end
SubProModel.m
#import "SubProModel.h"@implementation SubProModel-(void)testSub{// self.newClasses = self->classes;//Wrong:private property self.newSexName = self->sex; self.newName = self->name;}@end
main.m
#import <Foundation/Foundation.h>#import"PropertyModel.h"int main(int argc, const char * argv[]){ @autoreleasepool { NSLog(@"Hello, World!"); PropertyModel* pro = [[PropertyModel alloc] init];// NSString* temp = pro->sex;//Wrong:pro is protected NSString* temp = pro->name; } return 0;}
2.1 本类中
对于PropertyModel的@interface中的属性:
NSString* sex;
@public NSString* name;
@private NSString* classes;
sex为默认的protect属性只允许本类和子类访问。
name为共有的所有类都能访问。
classes为私有的只有子类访问。
2.2 本类访问
#import "PropertyModel.h"@implementation PropertyModel-(void) testPro{ self.sexName = sex; self.classesName = classes;}@end
可以直接调用属性名称访问。
2.3 外部类访问
#import "SubProModel.h"@implementation SubProModel-(void)testSub{// self.newClasses = self->classes;//Wrong:private property self.newSexName = self->sex; self.newName = self->name;}@end
需要使用“->”访问指针形式访问。
3 结语
以上是所有内容,希望对大家有所帮助。多的就不说了,可以下载Demo详细观看他们的区别。
Demo下载地址:http://download.csdn.net/detail/u010013695/5539117
- Objective的头文件@interface属性
- Interface Builder、头文件和实现文件
- 如何在Objective-C的头文件引用C++的头文件
- Effetive Objective - C 1.Objective 2.类的头文件中尽量少引入其他类的头文件
- 在类的头文件中尽量少引入其他头文件 <<Effective Objective-C>>
- 错误 5172:文件“*.mdf”的文件头不是有效的数据库文件头。PageAudit 属性不正确
- Effective Objective-C 2.0 第2条:在类的头文件中尽量少引入其它头文件
- iOS 头文件 只读属性
- Objective-c的属性
- 配置xml导入头文件过后没有联想的属性
- 【Objective-C】java中的interface与Objective-C中的interface的区别
- C++、Objective-c混编陷阱之–错误的头文件引用
- objective - c的属性参数
- iOS 高级开发技巧 1.熟悉Objective-C (二) 在类的头文件中尽量少引入其他头文件
- Layer层属性,要设置头文件
- Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念
- objective-c中interface与protocol的作用
- Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念
- 装修文章心得体会
- 在Release模式下能单步和断点
- 快速排序
- 深入浅出--UNIX多进程编程之fork()函数
- 推荐一个道路网络与交通网络相关的workshop
- Objective的头文件@interface属性
- c/c++ const使用心得
- Thinking in Java Adapter与Proxy区别
- Java IO操作
- 我的求职经历——遍览国内一流IT企业(转)
- WinSock TCP keepalive
- nginx在centos系统下安装以及nginx的伪静态安装配置
- linux命令Tlist的安装 及 使用
- 判断两个链表是否相交