Objective的头文件@interface属性
2013-06-07 20:52
162 查看
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属性
- Objective的头文件@interface属性
- Objective-C属性特性
- objective-c类目Category属性的实现方法
- Objective-C Runtime 运行时之二:成员变量与属性
- objective_C中@interface和 @property 方式声明变量的区别
- Objective-C 中类属性(修饰)
- 『IOS』objective-C: nonatomic retain copy assgin 等属性详解
- Objective-C 属性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)
- 编程笔记(objective-c :关于属性)
- Objective-c:属性
- Objective-c中@interface、@implementation、@protocal
- Objective-C - 属性类型修饰符
- Objective-C Runtime 运行时之二:成员变量与属性
- objective-C 的OOP(下)-类(static)方法、实例方法、overwrite(覆写)、属性(property)
- Objective-c - 多个对象的内存管理之:一个对象作为另一个对象的属性
- stat.h头文件,轻松获取文件属性
- objective-c 自动封装类的属性
- Objective-C属性修饰符strong和copy的区别
- [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十一章 属性