iphone将String传递给项目中的另一个.m文件

时间:2012-07-16 15:52:25

标签: iphone objective-c xml string smtp

当用户按下文本视图中的按钮和类型时,ViewController.m将组合电子邮件的正文。读取电子邮件的程序询问它是否为XML格式。最后的消息如下所示:

NSString *sendMessage = [[NSString alloc]initWithFormat:@"<?xml version = \"1.0\" ?>\n<?commitcrmxml version = \"1.0\" ?>\n<CommitCRMTransaction>\n<ExternalApplicationName>Myapp</ExternalApplicationName>\n<SendResponseToEmail>err@mysite.com</SendResponseToEmail>\n<Password>pass</Password>\n<ReturnTransactionID>CRDOWV34HL53J543GENDYDH92BSF</ReturnTransactionID>\n<DataKind>TICKET</DataKind>\n<RecordData>\n<FLDTKTCARDID>%@</FLDTKTCARDID>\n<FLDTKTPROBLEM>%@\n%@\n%@\n%@\n%@\n%@</FLDTKTPROBLEM>\n<FLDTKTSTATUS>100</FLDTKTSTATUS>\n<FLDTKTKIND>General</FLDTKTKIND>\n<FLDTKTPRIORITY>10</FLDTKTPRIORITY>\n<FLDTKTSOURCE>Myapp</FLDTKTSOURCE>\n<FLDTKTSCHEDLENESTIM>60</FLDTKTSCHEDLENESTIM>\n<FLDTKTFORDISPATCH>N</FLDTKTFORDISPATCH>\n</RecordData>\n</CommitCRMTransaction>", cardID, tempStoreCompany, tempStoreLocation, tempStoreName, tempStorePhone, tempStoreEmail, descriptionMessage];

我的第二个实现文件MailSend.m将使用(SKP)SMTP发送邮件。 MailSend.m需要访问sendMessage字符串中的文本(在ViewController.m中),以便可以正确发送消息。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

制作一个属性

@property (nonatomic,retain) NSString *sendText;
<。>在.h文件中,并在.m文件中合成为

@synthesize sendText;

然后将其设置为分配MailSend对象的位置,如

MailSend *ms = [[MailSend alloc] init....];
ms.sendText = sendMessage;
[self present...];
//or self.navigationController pushVie...];

并使用sendText

中的MailSend.m访问此字符串

答案 1 :(得分:0)

有三种简单的方法可以做到这一点。


首先是Inder如何说明你在其中创建一个属性并进行设置。


第二种方法是创建一个在SecondViewController中接受NSString作为参数的方法。

SecondViewController.h

- (void)setTextBody:(NSString*)_body;

SecondViewController.m

- (void)setTextBody:(NSString*)_body {
localBodyString = _body;
}

FirstViewController.m

SecondViewController *second = [[SecondViewController alloc] init...];
[second setTextBody:sendMessage];
//Push the view controller

另一种方法是将新的init方法添加到接受NSString的SecondViewController类中。

SecondViewController.h

- (id)initWithString:(NSString*)_body;

SecondViewController.m

- (id)initWithString:(NSString*)_body {
if (self)
 localBodyString = _body;
return self;
}

FirstViewController.m

SecondViewController *second = [[SecondViewController alloc] initWithString:sendMessage];
//Push view controller

现在,如果这两个都需要在头文件中定义NSString * localBodyString变量。