2011-06-29 60 views
0
@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]; 
    } 


} 

的名字,姓氏,日期值,簽名不留,我得到一個錯誤,當我嘗試不同的方法訪問名字,姓氏ETC:如何在以下方法中保留值?

[CFString字符串respondsToSelector:]:消息發送到釋放例如0x4ec63b0

我已經嘗試使用:

firstName = [NSString stringWithString attributeDict objectForKey:@"FirstName"]; 

但這並不工作。我知道這是一個愚蠢的問題,但我可以使用一些幫助。

感謝

回答

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評論..

+0

是否使用自有所作爲? – jini

+1

@jini:在屬性變量中使用'self'會隱式**保留**變量,而不顯式指定'retain'。這一切都發生在你的屬性變量的** setter **函數中。 – Jhaliya

+5

屬性應該是'copy',而不是'retain'。否則正確。 – bbum

2

要保留它,只需發送一個retain消息的對象。

firstName = [[attributeDict objectForKey:@"FirstName"] retain]; 

release它以後。