Ana içeriğe geç

Depolama Bilgilerini Sorgulama

Bağlı aygıttan en güncel depolama bilgilerini isteyin; ardından güncellenen storageInfo özelliğini okuyun.

Ön Koşullar

Depolama bilgilerini sorgulamadan önce şunları doğrulayın:

  • Aygıt bağlı ve kararlı durumdadır
  • Aygıt DeviceInfoAPI protokolünü destekler

API Reference

Framework

AIBuds.xcframework

Import

SDK'yı kullanacağınız dosyalarda ana framework'ü içe aktarın:

Swift
import AIBuds

Protokol

İstek yöntemi ve sonuç özelliği DeviceInfoAPI içinde tanımlıdır.

Swift
protocol DeviceInfoAPI: DeviceAPI {
    /// Device storage information.
    var storageInfo: StorageInfoModel? { get }

    /// Request to query the device storage information.
    /// - Parameters:
    ///   - completion: A closure that is called when the operation completes.
    ///   - success: `true` if the operation was successful; otherwise `false`.
    ///   - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
    func requestQueryStorageInfo(
        _ completion: AIBudsCompletionHandler?
    )
}

Örnek Yöntemi

Aygıtın en güncel depolama bilgilerini ister.

Swift
/// Request to query the device storage information.
/// - Parameters:
///   - completion: A closure that is called when the operation completes.
///   - success: `true` if the operation was successful; otherwise `false`.
///   - error: An `NSError` object that describes the error that occurred, or `nil` if the operation was successful.
func requestQueryStorageInfo(
    _ completion: AIBudsCompletionHandler?
)

Parametreler

ParametreTürAçıklama
completionAIBudsCompletionHandler?İstek tamamlandığında çağrılan isteğe bağlı tamamlanma işleyicisi.

Geri Çağrı Parametreleri:

AdTürAçıklama
successBool / BOOLİstek başarılıysa true; aksi halde false.
errorNSError?İstek başarısızsa hata ayrıntıları; aksi halde nil.

Sonuç Özellikleri:

ÖzellikTürAçıklama
usedSpaceInMBNSNumberMegabayt cinsinden kullanılan depolama alanı.
freeSpaceInMBNSNumberMegabayt cinsinden kalan kullanılabilir depolama alanı.

Dönüş Değeri

Yöntem, depolama verilerini tamamlanma işleyicisinde döndürmez. Başarılı bir isteğin ardından güncellenen storageInfo özelliğini okuyun.

Kullanım Örnekleri

Swift
import AIBuds

final class DeviceManager {
    weak var device: DeviceConvertible?

    func queryStorageInformation() {
        guard let device = device as? DeviceInfoAPI else {
            print("Device does not support storage queries")
            return
        }

        device.requestQueryStorageInfo { success, error in
            guard success else {
                print("Storage query failed: \(error?.localizedDescription ?? "Unknown error")")
                return
            }

            guard let storage = device.storageInfo else {
                print("The device did not provide storage information")
                return
            }

            print("Used storage: \(storage.usedSpaceInMB) MB")
            print("Free storage: \(storage.freeSpaceInMB) MB")
        }
    }
}

Hata Yönetimi

  1. Güncellenen özelliği okumadan önce success değerini kontrol edin.
  2. İstek başarısız olduğunda hata ayrıntıları için error değerini kullanın.
  3. Başarılı bir callback sonrasında nil olabilecek storageInfo değerini güvenle yönetin.
  4. Hedef aygıt için belgelenmedikçe sabit hata kodları varsaymayın.

En İyi Uygulamalar

  1. Başarıdan Sonra Okuyun: storageInfo özelliğine yalnızca sorgu başarıyla tamamlandıktan sonra erişin.
  2. SDK Birimini Koruyun: Her iki değeri de megabayt olarak değerlendirin; bayt olarak yorumlamayın.
  3. Protokol Uyumluluğunu Denetleyin: Aygıtın DeviceInfoAPI desteğini doğrulayın.
  4. Arayüzü Ana Kuyrukta Güncelleyin: Tamamlanma geri çağrısına bağlı UIKit güncellemelerini ana kuyruğa aktarın.

Notlar

  • Tamamlanma işleyicisi isteğin durumunu bildirir; bir StorageInfoModel sonucu içermez.
  • StorageInfoModel yalnızca megabayt cinsinden kullanılan ve boş alanı sunar.
  • SDK bu modelde toplam kapasite için ayrı bir özellik sunmaz.
  • Medya kaydedilirken, içe aktarılırken veya silinirken depolama bilgileri değişebilir.