2015-09-18 9 views
5

Oto mój kod:Dzielenie pewne typy plików (w tym zip) w kakaowym NSSharingServiceNameComposeMessage

  NSSharingService *service = [NSSharingService sharingServiceNamed: NSSharingServiceNameComposeMessage]; 
      tempURL = [NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"test.zip"]] 
      [service performWithItems:@[@"test", tempURL]]; 

Okno wiadomość jest prawidłowo pokazane, jak również „test” tekst, ale plik nie jest zawarte w wiadomości.

Co działa:

  • wiem, że adres URL jest w porządku, ponieważ jest poprawnie wyświetlane podczas korzystania z usługi o nazwie NSSharingServiceNameComposeEmail zamiast
  • plik zip jest ważny; jest to plik testowy, którego używam już w znanej lokalizacji, a już sprawdziłem, czy można go odpowiednio rozszerzyć; jest to również bardzo mały plik
  • Wiem, że wiadomość może mieć dołączony plik: powyższe działa dla plików PDF, dokumentów stron, itp ...
  • Wiem, że moja konfiguracja dla wiadomości jest dobra i może działać z plikami zip : przycisk „akcji” w Finder działa dobrze w przypadku korzystania z pliku zip i wybranie opcji „Wyślij wiadomość”

podobne problemy:

  • nieznanych typów plików również nie działają
  • ten sam problem podczas korzystania z serwisu Airdrop e NSSharingServiceNameSendViaAirDrop

Wszelkie pomysły, co jeszcze mogę spróbować? Dzięki!

Odpowiedz

2

Wygląda na to, że możesz udostępnić plik zip, ale nie pojawia się on na arkuszu udostępniania.

Przetestowałem to i kiedy wysłałem wiadomość do siebie, otrzymałem załączony plik zip.

- (IBAction)shareZipFile:(id)sender { 
    NSOpenPanel *openPanel = [NSOpenPanel openPanel]; 
    openPanel.allowedFileTypes = @[@"zip"]; 
    openPanel.prompt = @"Share"; 
    [openPanel runModal]; 

    NSSharingService *service = [NSSharingService sharingServiceNamed:NSSharingServiceNameComposeMessage]; 
    NSArray *items = @[openPanel.URL.lastPathComponent.stringByDeletingPathExtension, openPanel.URL]; 

    if (![service canPerformWithItems:items]) { 
     NSLog(@"Can't share that kind of stuff, sorry!"); 
     return; 
    } 

    [service performWithItems:items]; 
} 
+1

Rzeczywiście i duh! Dzięki za odpowiedź. To było mylące, ponieważ Finder ** nie ** wyświetla ikonę pliku zip. – charles

Powiązane problemy