問題タブ [ckasset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
63 参照

ios - 他のデータ更新に続いて、大きな CKAsset の再転送を回避する方法

変更される可能性のある日付やその他の詳細も含むレコードの一部として、大きな画像を CKAsset として保存しています。画像とその他の詳細はすべて、アプリにローカルに保存されています。

日付を変更して (たとえば)、レコードを CloudKit に再送信しようとすると (新しいレコードを作成し、そのデータ フィールドを設定し、CKModifyRecordsOperation を使用して)、CKAsset データが再アップロードされ、その後すべてのデバイスにダウンロードされたように見えます。

レコードに CKAsset 情報を設定しないと、「いくつかのレコードを変更できませんでした」というエラー メッセージが表示されます。

画像の不要な転送を避けるにはどうすればよいですか (サイズが小さいため、他のデータが不要に送信される心配はありません)。

CKAsset を別のリンクされたレコードに保存して、画像が変更されたときにのみダウンロードする必要がありますか?

0 投票する
3 に答える
278 参照

swift - サーバー レコードの CKAsset には fileURL が含まれておらず、nil をチェックすることさえできません

の保存ポリシーをCKAsset使用して (単に JPG 画像) を含むレコードを保存するときに、同期の競合をテストしています。エラーが発生しています。これにより、保存しようとしたレコードや現在のサーバー バージョンなど、競合の解決に役立つ情報が返されます。1つ目は 2つ目は です。CKModifyRecordsOperation.IfServerRecordUnchangedCKErrorCode.ServerRecordChangedCKErrorCKRecorderror.userInfo[CKRecordChangedErrorClientRecordKey]error.userInfo[CKRecordChangedErrorServerRecordKey]

私の問題は、次のコードでサーバー レコードの CKAsset にアクセスしようとしていることです。

これがどのように可能かわかりません。しかし、さらに調査した後、クライアントとサーバーの CKRecords を出力しましたが、サーバーの CKRecords には「パス」プロパティがありません。

client CKAsset...myPhoto (変更) -> CKAsset: 0x7b960d90; path=~/tmp/BF185B2C-7A39-4730-9530-9797E843243Aphoto, size=373959, uploadRank=0, uploadReceipt=A92Eg1qoyPG7yrg3, UUID=3C2D5DC8-4FF5-4A81-853B-395FC1C59862, referenceSignature=<012fd149 200fc600 617e3907 88763e3e 5002abbf 5b> 、フラグ = アップロード済み、ラップされた暗号化キー =、署名 = <0134a297 38d52f5f 9275bfba fce5b1a8 3d6b9692 d3>

サーバー CKAsset...myPhoto = CKAsset: 0x7be700d0; referenceSignature=<015337bd 84409893 7c014f46 36248d27 ce911dc3 7a>, size=373959, uploadRank=0, UUID=DF5D2EB4-033C-49A2-AF52-6055B5A44106, wrappedEncryptionKey=<767e7cfd d1e62110 32119ee9 f6f026b3 5bcf0cc3 8053a4de>, signature=<0134a297 38d52f5f 9275bfba fce5b1a8 3d6b9692 d3>

path=~/tmp/C706423B-A3E8-4051-A9B3-483C718BFBF5photoサーバー 1 から がどのように欠落しているかに注意してください。誰でもこれを説明できますか?それを修正するために、サーバー レコードから CKAsset に触れないようにしています。少なくともnilをチェックできるようにしたいと思います。他の誰かに役立つ場合に備えて、これを公開したかったのです。

0 投票する
0 に答える
87 参照

swift - CloudKit が CKAsset Song Swift 3 を再生しない

CloudKit に CKAsset として保存されている曲があります。曲を正常に取得し、エラーは発生しませんが、再生されません。どんな助けでも感謝します、ありがとう。

私の AVPlayer は、クラス内で遅延インスタンス化されています。

曲の再生を開始すると、(予想どおり) メッセージが表示されます。

Song at file:///private/var/mobile/Containers/Data/Application/E34BE227-86DD-4AD7-A3C1-6A0610CE8C39/Library/Caches/CloudKit/6e22c352bc4bdeb0b75d42a0d681d67c69eeaad4/Assets/6BD84822-D039-4228-A5E9-59CB281BB964.0182fa97976e7d7b941bb8d8790ea75c6d3b72c302始めました。

残念ながら曲は再生されません。