我正在尝试将记录保存到CloudKit但是收到错误.我曾在其他地方看到这是一个需要知道如何保存的问题,但我无法让它发挥作用.
var database:CKDatabase = CKContainer.defaultContainer().publicCloudDatabase
var aRecord:CKRecord!
if self.cloudId == nil {
var recordId:CKRecordID = CKRecordID(recordName: "RecordId")
self.cloudId = recordId // Setup at top
}
aRecord = CKRecord(recordType: "RecordType", recordID: self.cloudId)
aRecord.setObject(self.localId, forKey: "localId")
// Set the normal names etc
aRecord.setObject(self.name, forKey: "name")
var ops:CKModifyRecordsOperation = CKModifyRecordsOperation()
ops.savePolicy = CKRecordSavePolicy.IfServerRecordUnchanged
database.addOperation(ops)
database.saveRecord(aRecord, completionHandler: { (record, error) in
if error != nil {
println("There was an error \(error.description)!")
} else {
var theRecord:CKRecord = record as CKRecord
self.cloudId = theRecord.recordID
} …Run Code Online (Sandbox Code Playgroud) 我试图使用Angular 2/TypeScript和Web API下载文件.我遇到的问题是,在下载文本文件时,该文件是文件,但在尝试下载PDF文件时,例如,它已损坏.下载文件的内容是乱码.
我正在使用的TypeScript如下:
downloadFile(fileId: string): Observable<File> {
this.applicationsUrl = `${APIConfig.BaseUrl}/documents/download/${fileId}/`;
let headers = new Headers({ 'Content-Type': 'application/json', 'MyApp-Application' : 'AppName' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.applicationsUrl, '', options)
.map(this.extractContent)
.catch(this.handleError);
}
private extractContent(res: any) {
let blob: Blob = new Blob([res._body], { type: 'application/pdf'});
window['saveAs'](blob, 'test.pdf');
}
Run Code Online (Sandbox Code Playgroud)
窗口['saveAs']只是一种访问JavaScript FileSaver.js函数的解决方法.
另外我设置了res:响应res:any所以我可以在JavaScript下访问private _body属性而不会在TypeScript中出现编译失败.
任何帮助将不胜感激.