在SubView中访问对象时获取EXC_BAD_ACCESS

时间:2010-12-16 10:22:36

标签: iphone exc-bad-access nsobject

也许是一个非常基本的问题,但我不明白......

我已经编写了自己的类,在我的iPhone应用程序中将数据作为对象。该类是NSObject类型。 Class有几个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并设置所有属性。

然后我打开另一个显示Details的视图,并用我的vcardItem对象调用函数setVCard(仍然可以完全访问):

VCardViewController *aVCardViewController = [[VCardViewController alloc] init];
[self presentModalViewController:aVCardViewController animated:YES];
[aVCardViewController setVCard:aVCard];
然后,在VCardViewController中,只有NSString属性是可访问的。一旦我尝试访问VCardNItem,vCardADRitem或vCardTELitem的属性,我就会收到EXC_BAD_ACCESS错误。

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

我已经设置了NSZombie ......事情,我的vcardItem对象仍然存在(没有“Zombie”),但我无法访问数据。

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

1 个答案:

答案 0 :(得分:0)

Code Review完成了这项工作,在针对iOS 5构建Xcode 4后,一切都很好!