12-内存管理@property的参数
来源:互联网 发布:惊天动地影评知乎 编辑:程序博客网 时间:2024/06/14 10:16
// main.m
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
#import"USer.h"
#import"Status.h"
int main(int argc, const char * argv[])
{
USer * user1=[[USer alloc]init];
user1.name=@"2B";
USer * user2=[[USer alloc]init];
user2.name=@"12B";
Status *s=[[Status alloc]init];
s.text=@"今天天气真好";
s.user=user1;
Status *s2= [[Status alloc]init];
s2.text=@"今天天气真的不错呀";
s2.retweeStatus=s;
s2.user=user2;
[user1 release];
[s2 release];
[s release];
return 0;
}
void test()
{
Person * p= [[Person alloc]init];
[p setWeight1:122];
p.rich=YES;
bool b=p.isRich;
// 关于布尔类型:(Objective-c以下简称Oc)
//
// Oc风格BOOL 具有 YES 和 NO。实用8位存储空间。从最低位算起。 YES定义为1,NO定义为0。
//
// c语言风格 bool 具有true和false 而非0的全都是true,0是false。
//
// 输出BOOL值的方法:NSLog(@"%@",YES?@"YES":@"NO");%@输出字符串。
NSLog(@"p的体重是%d",p.getWeight1);
NSLog(@"%@有钱",YES?@"YES":@"NO");
// insert code here...
NSLog(@"Hello, World!");
}
=================
//
// Person.h
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
/*
1.set方法内存管理的相关参数
retain:在set方法中,release旧值,retain新值(适用于oc对象类型)
assign:默认赋值(适用于非oc对象类型)
copy:release旧值,copy新值
2.是否要生成set方法
readwrite:同时生成setter和getter的声明实现、默认是readwrite,同时生成get和set方法的声明
readonly:只会生成getter的实现声明
3.多线程管理
* noatomic: noatmic nonatomic代表方法不需要考虑线程安全问题
* atomic: atomic就代表给方法进行加锁,保证线程安全
4.setter和getter方法
setter:决定set方法的名称,一定要有一个冒号:
getter:决定了get方法的名称(返回bool类型的方法一般用is开头)
*/
@interface Person : NSObject
//返回bool类型的方法一般用is开头
@property(getter=isRich)bool rich;
@property(getter=getWeight1,setter = setWeight1:) int weight;
@property (readonly,assign)int height;
@property (nonatomic,assign)int age;
@property(retain)NSString *name;
@end
//
// Person.m
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import "Person.h"
@implementation Person
@end
//
// USer.h
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum {
SexMan, // 男
SexWoman // 女
} Sex;
typedef struct {
int year;
int month;
int day;
} Date;
// 微博内容、微博配图、发送时间、微博发送人、转发的微博、被评论数、被转发数
@interface USer : NSObject
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *account;
@property (nonatomic, retain) NSString *password;
@property (nonatomic, retain) NSString *icon;
@property (nonatomic, assign) Sex sex;
@property (nonatomic, retain) NSString *phone;
@property (nonatomic, assign) Date birthday;
@end
//
// USer.m
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import "USer.h"
@implementation USer
@end
//
// Status.h
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import <Foundation/Foundation.h>
#import"USer.h"
@interface Status : NSObject
// 微博内容、微博配图、发送时间、微博发送人、转发的微博、被评论数、被转发数
@property(nonatomic,retain) NSString *text;
@property(nonatomic,retain) NSString *icon;
//从1970-01-01 00:00:00开始一共度过了多少秒
@property(nonatomic,assign) long time;
@property(nonatomic,retain)USer *user;
@property(nonatomic,retain)Status *retweeStatus;
//reweet 转发
@property(nonatomic,assign) int commentscount;
@property(nonatomic,assign) int reweetscount;
@end
//
// Status.m
// @Property内存管理
//
// Created by amesty on 15-1-8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#import "Status.h"
@implementation Status
-(void)dealloc
{ [_text release];
[_icon release];
[_retweeStatus release];
[_user release];
[super dealloc];
}
@end
===================
- 12-内存管理@property的参数
- 内存管理:@property参数
- 内存管理3@Property参数
- 内存管理-@property参数详情
- @property的内存管理
- 黑马程序员---05@property参数相关的内存管理
- 第四天:内存管理-property参数
- OC @property的内存管理
- OC基础-内存管理-@property以及它的参数
- @property与内存管理以及可传参数
- Objective-C内存管理(四)@property相关参数详解
- OC学习笔记五 内存管理(property 参数)
- OBJ-C内存管理+@property参数+@class+autorelease学习笔记
- @property内存管理策略的选择
- Object-c------@property的内存管理
- Property 与 内存管理
- Objective-C—引用计数器、多个对象之间的内存管理、set方法的内存管理、@property参数、循环引用
- OC_语法入门_day5_内存管理_计数器/set方法/property的参数/循环引用/自动释放池
- Ant打包APK
- jquery的each,map,has
- Android Activity启动模式
- GUI_DOWNLOAD相关
- java--流
- 12-内存管理@property的参数
- java super() this 详解
- 推荐!国外程序员整理的系统管理员资源大全
- AutoCompleteTextView 简单用法
- 在Eclipse中编写servlet时出现"The import javax.servlet cannot be resolved" 问题解决办法
- Java数组声明、创建、初始化
- cocos2dx--两个场景切换各函数调用顺序
- @class
- 报错:loaded the "" nib but didn't get a UITableView