Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 访问子视图中的对象时获取EXC_BAD_访问权限_Iphone_Exc Bad Access_Nsobject - Fatal编程技术网

Iphone 访问子视图中的对象时获取EXC_BAD_访问权限

Iphone 访问子视图中的对象时获取EXC_BAD_访问权限,iphone,exc-bad-access,nsobject,Iphone,Exc Bad Access,Nsobject,也许是个很基本的问题,但我不明白 我已经编写了自己的类,用于在iPhone应用程序中将数据作为对象。该类的类型为NSObject。该类有几个NSString属性和其他类的三个对象 @interface vcardItem : NSObject { vCardNitem *PersonName; NSString *Phone; NSString *PhotoURL; vCardTELitem *PhoneData; NSString *URL; NSString *eMail; vCardADR

也许是个很基本的问题,但我不明白

我已经编写了自己的类,用于在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(该对象仍然可以完全访问):

然后,在VCardViewController中,只能访问NSString属性。一旦我尝试访问VCardNItem、vCardADRitem或vCardTELitem的属性,我就会得到一个EXC_BAD_访问错误

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

我已经设置了僵尸。。。事实上,我的vcardItem对象仍然存在(没有“僵尸”),但我无法访问数据


有什么想法吗?我在这里有点结巴

代码审查完成了任务,在针对iOS 5构建Xcode 4之后,一切都很好

尝试如下操作,VCardViewController*aVCardViewController=[[VCardViewController alloc]init];[aVCardViewController设置卡:aVCard];[自我呈现ModalViewController:aVCardViewController动画:是];这只是一种惯例,但在cocoa/cocoa touch中,您编写的类名以一个或多个大写字母开头(通常取自相应的框架),变量名不会以大写字母开头。你是在用另一种方式做这件事around@satya:如果切换这两条语句,结果是aVCardViewController中没有可用数据。我无法理解为什么会发生这种情况。我现在已经更改了viewController。通过“initWithPayload:(NSString*)payload”,viewController将创建vCardItem的对象。在viewDidLoad期间可以访问该对象,所有数据都在视图中正确显示。然后在IB中有一个按钮连接到IBAction。如果我点击按钮,如果我尝试访问数据,我仍然会在iAction中获得EXC_BAD_访问。如果我在调试器中检查对象,该对象仍然存在,没有僵尸入口。@MadMaxApp:切换这两条语句,将nslog放在setVcard语句之前,并打印aVcard对象。并在设置后打印相同的内容。检查是否正在打印正确的值。
VCardViewController *aVCardViewController = [[VCardViewController alloc] init];
[self presentModalViewController:aVCardViewController animated:YES];
[aVCardViewController setVCard:aVCard];