A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© JAH562 中级黑马   /  2014-10-27 10:24  /  550 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#import <Founation\Founation.h> //定义书类
@interface Book: NSObject

@property int price;

-(void)read;

@end

@import "Book.h"

@implementation
-(void)read{

  NSLog("reading book");


}


@end


  #import <Founation\Founation.h>
  @class Book;

@interface Student:NSObject{
Book* _book;


}

@property int age;

@property Book* book

@end

#import "Student.h"
#import"Book.h"


@implementation Student

@synthesize age=_age;

-(id)setBook:(Book *)book{

  if(_book!=book){   

[_book release];
_book=[book retain];

  }

-(Book *)book{

return _book;

}


}





-(void)dealloc{
[_book release];

[super dealloc];
}
@end       


在以下代码中:
-(id)setBook:(Book *)book{

  if(_book!=book){   

[_book release];
_book=[book retain];

  }

使用 set管理内存 时 是先release 旧对象 retain 新对象 ,问题是 刚进程序初始化的时候 _book没有值啊
还要去release 怎么不会报野指针错误   不解  求大神帮忙?

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马