@interface SignDocumentController : UIViewController<NSXMLParserDelegate> {
NSMutableString *signFaxString;
NSString * messageId;
NSMutableData *xmlData;
NSURLConnection *connectionInprogress;
NSURLConnection *connectionInprogress2;
NSString * annotationKey;
NSString *firstName;
NSString *lastName;
NSString *date;
NSString *signature;
IBOutlet UIImageView *image;
}
@property(nonatomic,retain)UIImageView * image;
@end
-(void)parser:(NSXMLParser *)parser
didStartElement:(NSString *) elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqual:@"SignatureInfo"]) {
signFaxString = [[NSMutableString alloc]init];
firstName = [attributeDict objectForKey:@"FirstName"];
lastName = [attributeDict objectForKey:@"LastName"];
date = [attributeDict objectForKey:@"Date"];
signature = [attributeDict objectForKey:@"Signature"];
}
if ([elementName isEqual:@"AddAnnotationResult"]) {
signFaxString = [[NSMutableString alloc]init];
}
}
firstName,lastName,date,signature的值不会停留,当我尝试以不同的方法访问firstName,lastName ETC时出现错误:
[CFString respondsToSelector:]:发送到解除分配的实例0x4ec63b0的消息
我尝试过使用:
firstName = [NSString stringWithString attributeDict objectForKey:@"FirstName"];
但这也不起作用。我知道这是一个愚蠢的问题,但我可以使用一些帮助。
由于
答案 0 :(得分:3)
您还可以将firstName
和其他人声明为属性和retain
。如下
@property(nonatomic,retain)NSString* firstName;
@property(nonatomic,retain)NSString* lastName;
@property(nonatomic,retain)NSString* date;
@property(nonatomic,retain)NSString* signature;
在.m级。
@synthesize firstName,date,lastName,signature;
并在dealloc
函数中释放它们。
在您的班级中使用self
所有属性变量。
self.firstName = [NSString stringWithString:attributeDict objectForKey:@"FirstName"];
<强>编辑:强>
还要考虑 @bbum 评论..
答案 1 :(得分:2)
要保留它,只需向对象发送retain
消息。
firstName = [[attributeDict objectForKey:@"FirstName"] retain];
release
稍后。