Ios 在某些手机上从UIActivitySheet发送短信时出现问题

Ios 在某些手机上从UIActivitySheet发送短信时出现问题,ios,uiactivityviewcontroller,mfmessagecomposeview,uiactivity,Ios,Uiactivityviewcontroller,Mfmessagecomposeview,Uiactivity,我的应用程序有一个操作按钮,可以启动UIActivityViewController。在我的测试设备5S上,它可以做任何事情,包括发短信。然而,在我的5C测试设备上,它在尝试发送消息时崩溃。我这里的代码是否有问题,使它可以在某些手机上发送信息,而不是在其他手机上 下面列出的代码有一些注意事项。首先,有时,要发送的文本将超过140个字符,因此我首先检查字符串的长度。如果超过140个字符,它会剪掉中间部分,添加。。。在结尾之前,并将其保留为140个字符。然后,在操作中,如果超过140个字符,它将仅为

我的应用程序有一个操作按钮,可以启动UIActivityViewController。在我的测试设备5S上,它可以做任何事情,包括发短信。然而,在我的5C测试设备上,它在尝试发送消息时崩溃。我这里的代码是否有问题,使它可以在某些手机上发送信息,而不是在其他手机上

下面列出的代码有一些注意事项。首先,有时,要发送的文本将超过140个字符,因此我首先检查字符串的长度。如果超过140个字符,它会剪掉中间部分,添加。。。在结尾之前,并将其保留为140个字符。然后,在操作中,如果超过140个字符,它将仅为Twitter和Message发送编辑过的字符串,但为所有其他内容发送常规字符串,如果超过140个字符,则发送常规字符串

-(void)sendit {
    NSString *string = label1.text;
    if ([string length] > 140) {
        int maxChars = 140;
        int charsOver = [string length] - maxChars;
        NSString *replacementString = @"...";
        charsOver += [replacementString length]; //account for adding "..."
        NSArray *components = [string componentsSeparatedByString:@" - "];
        NSMutableString *stringToTrim = [NSMutableString string];
        int numberOfComponents = [components count];
        for (int i = 0; i < numberOfComponents - 1; i++) {
            NSString *component = [components objectAtIndex:i];
            if (i < numberOfComponents - 2) {
                [stringToTrim appendFormat:@"%@ - ", component];
            }
            else {
                [stringToTrim appendString:component];
            }
        }
        NSString *trimmedString = [stringToTrim substringToIndex:[stringToTrim length] - charsOver];
        self.finalString = [NSString stringWithFormat:@"%@%@%@", [trimmedString stringByAppendingString:replacementString], @" - ", [components objectAtIndex:numberOfComponents - 1]];
        UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil];




        activityVC.excludedActivityTypes = @[ UIActivityTypePostToWeibo,


        UIActivityTypeAssignToContact,

        UIActivityTypePrint,
                                              UIActivityTypeAirDrop
        ];



        [self presentViewController:activityVC animated:YES completion:nil];
    }
    else {
        NSArray *activityItems = @[label1.text];
        UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];




        activityVC.excludedActivityTypes = @[ UIActivityTypePostToWeibo,


        UIActivityTypeAssignToContact,

        UIActivityTypePrint,
                                              UIActivityTypeAirDrop
        ];



        [self presentViewController:activityVC animated:YES completion:nil];
    }

}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {

    if ([activityType isEqualToString:UIActivityTypeMail]) {
        NSLog(@"TEST");
              return label1.text;
    }
    if ([activityType isEqualToString:UIActivityTypePostToTwitter]){
        NSString *string = label1.text;
        if ([string length] > 140) {
               return self.finalString;
        }
        else {
            return label1.text;
        }
    }
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]){

        return label1.text;
    }
    if ([activityType isEqualToString:UIActivityTypeCopyToPasteboard]){

        return label1.text;
    }
    if ([activityType isEqualToString:UIActivityTypeMessage]){
        NSString *string = label1.text;

        if ([string length] > 140) {
            return self.finalString;
        }
        else {
            return label1.text;
        }
    }
    return nil;
}