私はiPodの音楽をftpサーバにアップロードしようとしています。 そうAVAssetExportSessionを使用して、私はドキュメントフォルダステータス1(NSStreamStatusOpening = 1)で停止したnsoutputstream - iOS - 目的c
exportSession.outputURL = [NSURL fileURLWithPath:musicFilePath];
[exportSession exportAsynchronouslyWithCompletionHandler:^{
if(exportSession.status == AVAssetExportSessionStatusCompleted) {
NSLog(@"export completed.");
self.exportedMusicPath = musicFilePath;
[self.delegate exportMusicFinish:self.exportedMusicPath];
}
else {
NSLog(@"export failed.");
[self.delegate exportMusicFinish:@"export failed"];
}
}];
でファイルを作成し、私は私のFTPアップロードのためのnsoutputstreamを開き、代理人を通じてエクスポートされたファイルのパスを取得
-(void) exportMusicFinish:(NSString *)exportedMusicPath {
if(!self.fileUpload) {
self.fileUpload = [[FTPUpload alloc] init];
self.fileUpload.delegate = self;
}
self.exporter = nil;
[self.fileUpload uploadFileToFTP:exportedMusicPath];
}
self.fileStream = [NSInputStream inputStreamWithFileAtPath:filePath];
assert(self.fileStream != nil);
[self.fileStream open];
// Open a CFFTPStream for the URL.
self.networkStream = CFBridgingRelease(CFWriteStreamCreateWithFTPURL(NULL, (__bridge CFURLRef) url));
[self.networkStream setProperty:(id)kCFBooleanFalse forKey:(NSString *)kCFStreamPropertyFTPAttemptPersistentConnection];
assert(self.networkStream != nil);
success = [self.networkStream setProperty:@"userid" forKey:(id)kCFStreamPropertyFTPUserName];
assert(success);
success = [self.networkStream setProperty:@"userpw" forKey:(id)kCFStreamPropertyFTPPassword];
assert(success);
//- (BOOL)setProperty:(id)property forKey:(NSString *)key ,object casting needed
self.networkStream.delegate = self;
[self.networkStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.networkStream open];
ただし、ネットワークストリーム(nsoutputqtream)が開かれた状態でスタックしました。
私のURL、パスはこれ以外マイドキュメントフォルダ内のすべてのファイルに適切に補正し、アップロードクラスの仕事である
誰も私を助けることができるファイルをエクスポートしますか?私はiOSプログラミングにうまくいきません。