Berbagi Data dengan AppGroup
Sep 21 2020
Saya ingin membagikan satu variabel dari File UIKit saya ke Ekstensi Widget saya yang dibuat dengan SwiftUI. Saya mengikuti ini di sini. Silakan lihat jawaban dari J Arango.
Tapi saya tidak mengerti bagian terakhir di sana. Saya harus menggunakan import MySharedObjects.
Jadi saya melakukan ini:
import MySharedObject
struct testing {
let mySharedObject = MySharedObject(name: "My Name", lastName: "My Last Name")
do {
let data = try JSONEncoder().encode(mySharedObject)
/// Make sure to use your "App Group" container suite name when saving and retrieving the object from UserDefaults
let container = UserDefaults(suiteName:"group.com.widgetTest.widgetContainer")
container?.setValue(data, forKey: "sharedObject")
/// Used to let the widget extension to reload the timeline
WidgetCenter.shared.reloadAllTimelines()
} catch {
print("Unable to encode WidgetDay: \(error.localizedDescription)")
}
}
Tapi saya mendapatkan kesalahan berikut.
- Argumen tambahan di posisi # 1, # 2 dalam panggilan
- Argumen yang hilang untuk parameter dari panggilan
- masukkan dari: <# Decoder #>
- deklarasi yang diharapkan di mana saya menggunakan
dobagian tersebut.
Jawaban
2 pawello2222 Sep 21 2020 at 19:35
- Simpan data ke
UserDefaultsdalam Aplikasi utama Anda:
UserDefaults(suiteName: <your_app_group>)!.set("test", forKey: "test")
- Membaca data dari
UserDefaultsdalam Widget Anda:
let testStr = UserDefaults(suiteName: <your_app_group>)!.string(forKey: "test")
Jika Anda ingin menyimpan jenis lain, lihat:
- Bagaimana saya bisa menggunakan UserDefaults di Swift?
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'