Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ]
#4
iOS'in iç işleyişi hakkında derinlemesine bilgiye sahip değilim ancak bunun, kullanılan API fonksiyonlarının döndürdüğü nesne türüyle ilgili olabileceğinden şüpheleniyorum.
Başka bir deyişle, döndürülen nesne henüz görselin kendisi olmayabilir; bunun yerine, asıl bitmap'i oluşturmak için işlenmesi gereken ham veri olabilir.

PHPicker ile çalışırken, bir görselin yüklenip yüklenemeyeceğini kontrol etmek için Apple'ın önerdiği yaklaşım, doğrudan `UIImage` sınıfını kontrol etmek yerine `kUTTypeImage` (veya eşdeğer iOS tanımlayıcısı) kullanmaktır. Bunun nedeni, `itemProvider`ın görseli henüz bellekte `UIImage` formatında olmayan ancak `UIImage`e dönüştürülebilir bir formatta tutuyor olabilmesidir.

Önerilen çözüm: `canLoadObjectOfClass(TUIImage.OCClass)` kullanmak yerine, standart görsel türüyle birlikte `hasItemConformingToTypeIdentifier` kullanmalıyız.

// iOSapi.UniformTypeIdentifiers veya iOSapi.MobileCoreServices birimini kullanın.
uses
 iOSapi.UniformTypeIdentifiers, iOSapi.Foundation;

// ... döngünüzün içinde:

if (ResultItem <> nil) and (ResultItem.itemProvider <> nil) then
begin
 // canLoadObjectOfClass yerine bir UTI (Uniform Type Identifier) kontrolü kullanın.
 if ResultItem.itemProvider.hasItemConformingToTypeIdentifier(UTTypeImage) then
   ResultItem.itemProvider.loadObjectOfClass(TUIImage.OCClass, LoadCompleted);
  // else ...
end;


Bunun sorununuzu neden çözmesi gerektiği:
Çalışma Zamanı Güvenliği: `hasItemConformingToTypeIdentifier`, bir öğenin dönüştürülebilir olduğundan emin olmak için kullanılan Apple'ın yerel (native) metodudur. Delphi'deki doğrudan `canLoadObjectOfClass` kontrolüne kıyasla çok daha sağlamdır ve bellek erişim ihlallerine yol açma ihtimali daha düşüktür.

Uyumluluk: `UTTypeImage`, PHPicker tarafından sağlanan tüm görsel türlerini kapsayan doğru sabittir (constant).

Önemli uygulama noktaları:
Bellek Yönetimi: İkinci denemenizde `Dump.Free` ekleyerek doğru olanı yaptınız. Bunu yapmaya devam edin.

Yürütme İş Parçacığı (Thread): `TThread.Synchronize` kullanma fikriniz doğru. `loadObjectOfClass` asenkrondur ve arka plan iş parçacığında çalışır. Ana iş parçacığı dışından Delphi görsel bileşenlerine (örneğin `FOwner.Resim_list`) erişmeye çalışmak, FMX'teki çökmelerin bir numaralı nedenidir.

Nil Kontrolleri: Mevcut nil kontrollerinizi koruyun; çünkü Delphi köprüsü (bridge) aracılığıyla iOS üzerindeki nesne yaşam döngüsü değişken olabilir.

NOT: Portekizceden Türkçeye çeviri için Google Translate kullanılmıştır.

Yerel Android Fotoğraf Seçici'yi (Photo Picker) kullanarak Android için hazırladığım bir örnek var; belki iOS konusunda size yardımcı olabilir.

Genel olarak Delphi hakkındaki kanalıma abone olmaktan ve videolarımı beğenmekten çekinmeyin. Mümkünse, lütfen diğer yazılımcı arkadaşlarınıza da tavsiye edin!

Using native PickerPhoto from Android
https://www.youtube.com/watch?v=6lp6xiUILAg

my Youtube channel:
"www.youtube.com/@emailx45"
MSWindows, AndroidRAD Studio 13 Florence ve kafamda bir fikir  Tongue  
WWW
Cevapla


Bu Konudaki Yorumlar
PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ] - Yazar: codder71 - 07-07-2026, Saat: 16:39
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 07-07-2026, Saat: 23:06
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 08-07-2026, Saat: 16:16
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 08-07-2026, Saat: 18:08
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 13-07-2026, Saat: 15:05
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 14-07-2026, Saat: 01:32
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 14-07-2026, Saat: 23:26
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 15-07-2026, Saat: 02:29
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: emozgun - 17-07-2026, Saat: 05:30
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 17-07-2026, Saat: 16:47
PHPickerDelegate Derleme Sorunu - Yazar: emailx45 - 18-07-2026, Saat: 01:55
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: emozgun - 18-07-2026, Saat: 06:26
Cvp: PHPickerDelegate Derleme Sorunu - Yazar: codder71 - 18-07-2026, Saat: 22:37
PHPickerDelegate Derleme Sorunu [ÇÖZÜLDÜ] - Yazar: emailx45 - 18-07-2026, Saat: 22:54

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Wmware Macos Apple Hesap Sorunu nurah 3 355 20-08-2026, Saat: 22:35
Son Yorum: codder71
  Google Play Billing Versiyon Sorunu[ÇÖZÜLDÜ] codder71 12 1.158 01-08-2026, Saat: 22:45
Son Yorum: codder71
  Android 16 Uygulama Ekran Taşma Sorunu[ÇÖZÜLDÜ] codder71 5 670 31-07-2026, Saat: 23:38
Son Yorum: mcuyan
  ios için uygulama derleme [ÇÖZÜLDÜ] codder71 29 3.885 01-07-2026, Saat: 14:39
Son Yorum: codder71
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 2 883 08-06-2026, Saat: 16:22
Son Yorum: emailx45



Konuyu Okuyanlar: 2 Ziyaretçi