博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oc-25- @property @synthesize
阅读量:6638 次
发布时间:2019-06-25

本文共 1755 字,大约阅读时间需要 5 分钟。

s.h#import 
@interface Student : NSObject{ @public NSString *_name; int _age; int _height;}// @property能够自动生成set和get方法的 声明// @property 成员变量类型 成员变量名称(去掉下划线);//- (void)setName:(NSString *)name;//- (NSString *)name;@property NSString *name;@ends.m/** 问题:想要给自己不带下划线的成员变量进行赋值,怎么办?> 需要给@synthesize指定,告诉该赋值给谁. @synthesize name = _name; 它就知道,赋值_name; */#import "Student.h"@implementation Student@synthesize name;//生成了getset方法的实现//- (void)setName:(NSString *)name//{// name = name;// NSLog(@"%p",name);//}//- (NSString *)name//{//// return name;//}@endmain.m#import
#import "Student.h"int main(int argc, const char * argv[]) { @autoreleasepool { Student *s = [Student new]; s.name = @"亚索"; // 这步能够调用,证明@property生成了set和get方法的声明. [s setName:@"亚索"]; // 证明@synthesize生成了set和get方法的实现. NSLog(@"%p",s->name); NSLog(@"-----"); } return 0;}

 

@property增强使用

  • Xcode4.4版本以后支持的
  • 只使用 @property 进行声明,类自动帮你实现。
  • Xcode4.4以后property做了增强

    • 帮助我们自动生成get/set方法的声明
    • 帮助我们自动生成get/set方法的实现
s.h/**  @property的加强用法: 1.生成set和get方法的声明 2.生成set和get方法的实现 3.生成带下划线的成员变量.  注意事项: 1. 当用户手动重写了set方法时,@property会生成get方法和带下划线的成员变量 2. 当用户手动重写了set和get方法时.@property不会生成待下划线的成员变量. 3. 当用户手动重写了get方法时,@property会生成set方法和带下划线的成员变量.  */#import 
#import "Person.h"@interface Student : Person@property NSString *name;//生成的变量名是_name,@property int age;@property int height;@property int weight;@ends.m#import "Student.h"@implementation Student//@synthesize age = _age,height = _height,weight = _weight,name = _name;//手动重写get方法- (NSString *)name{ return _name;}- (instancetype)init{ if (self = [super init]) { NSLog(@"s---%@",self); NSLog(@"s---%@",super.class); } return self;}@end

 

转载地址:http://idsvo.baihongyu.com/

你可能感兴趣的文章
LibreOffice 3.6.6 修复了 50 个 Bug
查看>>
PHREL 1.0.1 发布,主机流量限制工具
查看>>
动画骨骼【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)...
查看>>
【ASP.NET 基础】用户控件开发
查看>>
pgbench的使用简介
查看>>
Delphi 指针数组的引用
查看>>
如何在Apache中建立一个新端口
查看>>
谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)
查看>>
地址请求Eclipse中TCPIPMonitor的用法
查看>>
jquery判断对象是否为空并遍历对象
查看>>
最近生活
查看>>
System.Management.ManagementException: 访问遭到拒绝的解决方案
查看>>
设计模式之七(代理模式)
查看>>
data代码C#中struct的2个小问题
查看>>
手机音效手机测试-游戏类
查看>>
python中如何判断一个变量的数据类型?(原创)
查看>>
使用MyEclipse开发 服务器的部署方式(续)
查看>>
27、SQL Server 数据架构创建之数据列的创建
查看>>
HTTP中Get与Post的区别
查看>>
C#多线程解决界面卡死问题的完美解决方案
查看>>