错误警告怀疑

时间:2011-11-24 11:47:12

标签: iphone

- (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时会发生这种情况。我怎么解决这个问题? 提前谢谢。

4 个答案:

答案 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}}方法。