- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{ NSMutableString *message=[[NSMutableString alloc]init];
// Notifies users about errors associated with the interface
switch (result)
{
case MFMailComposeResultCancelled:
message = @"Result: canceled";
break;
case MFMailComposeResultSaved:
message = @"Result: saved";
break;
case MFMailComposeResultSent:
message = @"Result: sent";
break;
case MFMailComposeResultFailed:
message = @"Result: failed";
break;
default:
message = @"Result: not sent";
break;
}
我正在使用mailcomposer的上述代码。编译时会发出警告incompatable pointer types assigning to NSMutableString from NSString
。我相信当我们使用NSString而不是NSMutableString时会发生这种情况。我怎么解决这个问题?
提前谢谢。
答案 0 :(得分:3)
如果除了switch case之外你没有向“message”添加任何内容,请使用NSString而不是NSMutableString。
如果必须使用可变字符串,而不是
message = @"Result: cancelled";
使用
[message appendString:@"Result: cancelled"];
答案 1 :(得分:2)
查看setString:方法
[message setString:@"Result ..."];
答案 2 :(得分:2)
您必须附加像
这样的值,而不是分配新值[message appendString:@"Result: canceled"];
最后,您可以使用message
。
答案 3 :(得分:2)
在这里,我可以看到可能存在内存泄漏的情况......当您使用 init 创建NSMutableString
对象,然后分配NSString
对象时。
因此,建议您使用appendString
的{{1}}方法。