08-07-2026, Saat: 16:16
(07-07-2026, Saat: 23:06)emailx45 Adlı Kullanıcıdan Alıntı: 1) Beklenen işlemden farklı bir iş parçacığında kod yürütülmesi arasındaki çakışma nedeniyle olası çökme. Başka bir deyişle, mobil cihazlar genellikle eşzamansız iş parçacıklarında çalışır, oysa uygulama penceresi tarafından kullanılan iş parçacığı eşzamanlıdır (ana iş parçacığı). Bu nedenle, bu tutarsızlık kodunuzda meydana gelebilir!
2) Bir diğer faktör ise ARC'dir, yani kodda hala hayatta olmaları gereken noktadan önce ölen nesneler. Bu nedenle, mobil nesneler genellikle "arayüzler" olduğundan, kodunuz bağlam kapsamından ayrıldığı için nesneyi erken öldürüyor olabilir.
3) Kullanılan nesneleri ve iş parçacıklarını gözden geçirin!
4) Şuna benzer bir şey deneyin:
Kod: (Select All)
procedure TPHPickerDelegate.LoadCompleted(Item: Pointer; Error: NSError); cdecl;
var
IOSImage: UIImage;
begin
if (Item = nil) or (Error <> nil) then
Exit;
IOSImage := TUIImage.Wrap(Item);
// Kullanıcı arayüzünün ana iş parçacığında güncellenmesini sağlamak için TThread.Synchronize kullanıyoruz.
TThread.Synchronize(nil, procedure
var
Dump: TBitmap;
begin
Inc(FResimNo);
Dump := UIImageToBitmap(IOSImage, 0, TSize.Create(1920, 1080));
if Dump <> nil then
begin
FOwner.Resim_list.Items.Add.Text := 'Resim ' + FResimNo.ToString;
FOwner.Resim_list.Items[FOwner.Resim_list.ItemCount - 1].Bitmap := Dump;
Dump.Free; // Oluşturulan bitmap'i serbest bırakmak önemlidir.
end;
FOwner.Bekleme_Durumu(False);
end);
end;
Dikkate Alınması Gereken Ek Noktalar:
Bellek Yönetimi: UIImageToBitmap yeni bir TBitmap nesnesi oluşturur. Bunu serbest bırakmazsanız (Dump.Free), seçilen her fotoğraf için ciddi bir bellek sızıntısı yaşarsınız.
Saklama: PHPicker aktifken TPHPickerDelegate nesnesinin serbest bırakılmadığından emin olun. PHPicker genellikle delegeyi saklar, ancak onu oluşturan değişkenin doğru kapsamda olduğundan emin olmak iyi bir uygulamadır.
Hocam cevabınız için çok teşekkürederim. Koddaki değişiklikleri söylediğiniz gibi yaptım. Çökmeyi hangi kısımın yaptığınıda buldum fakat hala çözüme yaklaşamadım maalesef
Çökmeye altta paylaştığım sorgu sebep oluyor.
ResultItem.itemProvider.canLoadObjectOfClass(TUIImage.OCClass)Bu sorguyu comment yapıp test ettiğimde ise tamam butonu çalışmıyor ve resimler seçilemiyor. Aktif ettiğimde ise direk uygulama kapanıyor ama her iki durumdada iptal butonu aktif çalışıyor buda picker procedure sinin tetiklendiği anlamına geliyor.
ResultItem.itemProvider.canLoadObjectOfClass(TUIImage.OCClass)bu sorgunun neden çalışmadığı ile ilgili bir çözüm bulamadım maalesef yardımlarınızı bekliyorum.

