NSFileWrapper tabanlı bir UIDocument kullanan bir uygulama var. Benim dosya sarıcı, "photo.data" ve "photo.metadata" adlı iki alt dosya ile "XXX.cp" adlı bir dizindir. Bu kaydetmek ve ben Ayarlar giderken yük belgelerin ince, ancak \ Storage \ Bilinmeyen yönetme gibi görünüyor alt dosyalar ayrı listelenmiştir:iCloud & NSFileWrapper: 2 farklı dosyayı Ayarlar olarak gösteriliyor
ben "XXX.cp" göstermek yerine onu bekliyordum Bu iki alt dosya. Ben belge İYE kurmak ve düzgün ihraç var:
Ve eğer doğru dosya sarmalayıcılarını oluşturma düşünüyorum (okur özellikle/ince yazıyor):
- (void)encodeObject:(id<NSCoding>)object toWrappers:(NSMutableDictionary *)wrappers preferredFilename:(NSString *)preferredFilename {
@autoreleasepool {
NSMutableData * data = [NSMutableData data];
NSKeyedArchiver * archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:object forKey:@"data"];
[archiver finishEncoding];
NSFileWrapper * wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:data];
[wrappers setObject:wrapper forKey:preferredFilename];
}
}
- (id)contentsForType:(NSString *)typeName error:(NSError *__autoreleasing *)outError {
if (self.captionedPhotoMetadata == nil || self.captionedPhoto == nil) {
*outError = [[NSError alloc] initWithDomain:CaptionedPhotoErrorDomain code:CaptionedPhotoInvalidDocument userInfo:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Invalid document!", @""), NSLocalizedDescriptionKey, nil]];
return nil;
}
NSMutableDictionary * wrappers = [NSMutableDictionary dictionary];
[self encodeObject:self.captionedPhotoMetadata toWrappers:wrappers preferredFilename:METADATA_FILENAME];
[self encodeObject:self.captionedPhoto toWrappers:wrappers preferredFilename:DATA_FILENAME];
NSFileWrapper * fileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:wrappers];
return fileWrapper;
}
Ama yine de puro yok. Herhangi biri problemin ne olduğunu biliyor mu? Teşekkürler!
Bu sorunu da yaşadım ve dosya uzantım için 3 harfim var. Dizin tabanlı dosya sarıcı için .tfx uzantısını kullanıyorum. Son zamanlarda sarma dosyamı SyncDocuments adlı her yerde bulunan kapsayıcımdaki ayrı bir klasöre koymaya karar verdim. Bu şekilde bireysel dosyalar kullanıcı için görünmez. Ancak, UIDocument alt sınıf dosyalarımın doğrudan etkileşim kurması için kullanılmasını istemediğim şey budur. –
Tam olarak aynı sorun var, ancak dosya uzantım üç harf (ve bir simge) vardır. Bu ihraç UTI bazı balık ayarlı olduğunu düşünüyorum. Herkese göre, iCloud'da bir çeşit önbellekleme var ve bu uzantı .cp'den .cap'a değiştirildi. – auco
Hey Ray öğreticilerinizi seviyorum, ancak hala bir sorun yaşıyorum. Paketleyicileri paket olarak gösterebilirim ama sonra nsmetadataquery onları görmez. Tüm belgeleri bir * ile ararsam olay olmaz. İlk belge türüm çalışıyor ancak görüntülerim bir tane daha değil – zambono