2010-12-16 55 views
0

也许一个非常基本的问题访问对象,但我不明白这一点...获得EXC_BAD_ACCESS在子视图

我写我自己的类具有数据作为我的iPhone应用程序的对象。该类是类型NSObject。该类有几个NSString属性,还有其他类的三个对象。

@interface vcardItem : NSObject { 
vCardNitem *PersonName; 
NSString *Phone; 
NSString *PhotoURL; 
vCardTELitem *PhoneData; 
NSString *URL; 
NSString *eMail; 
vCardADRItem *Address; 
NSString *Company; 
NSString *Role; 
int initialised; 
} 

@property (nonatomic, retain) vCardNitem *PersonName; 
@property (nonatomic, retain) NSString *Phone; 
@property (nonatomic, retain) NSString *PhotoURL; 
@property (nonatomic, retain) vCardTELitem *PhoneData; 
@property (nonatomic, retain) NSString *URL; 
@property (nonatomic, retain) NSString *eMail; 
@property (nonatomic, retain) vCardADRItem *Address; 
@property (nonatomic, retain) NSString *Company; 
@property (nonatomic, retain) NSString *Role; 
@property int initialised; 

-(id)initEmpty; 
-(id)initWithPayload:(NSString *)payload; 
-(void)sendToAddressBook; 
-(void)debugVCard; 
-(NSString *)getFirstName; 
@end 

我在我的viewcontroller函数调用中创建vcardItem的对象。数据已填写且可访问。调用函数initWithPayload并设置所有属性。

然后我打开另一视图显示详细信息和呼叫我vcardItem对象的功能setVCard(这仍然是completeley访问):

VCardViewController *aVCardViewController = [[VCardViewController alloc] init]; 
[self presentModalViewController:aVCardViewController animated:YES]; 
[aVCardViewController setVCard:aVCard]; 

的VCardViewController内,那么,只有NSString的propertys是入店。只要我试图访问VCardNItem,vCardADRitem或vCardTELitem的属性,我就会得到一个EXC_BAD_ACCESS错误。

看起来像vcardItem对象内的对象不可用!?

我已经设置NSZombie ...东西,我的vcardItem对象仍然存在(没有“僵尸”),但我无法访问数据。

任何想法?我在这里有点困惑......

+0

请尝试以下方法,VCardViewController * aVCardViewController = [[VCardViewController alloc] init]; [aVCardViewController setVCard:aVCard]; [self presentModalViewController:aVCardViewController animated:YES]; – Satya 2010-12-16 10:40:22

+0

仅仅是一个约定,但是在可可/可可触摸中,你会写出以大写或大写字母开头的类名(通常取自对应框架),而变量名不会以大写字母开头。你是这样做的 – nacho4d 2010-12-16 10:41:09

+0

@satya:如果我切换这两个语句,结果是,aVCardViewController中没有数据可用。 – MadMaxAPP 2010-12-16 17:27:32

回答

0

代码审查完成这项工作后,在Xcode 4对iOS 5建设一切都很好!

相关问题