iOS - bist du sicher?
Die ganzen Bindings und Listen, die du erzeugst, sollen doch nach dem Prozeduraufruf noch "weiterleben". Du machst das konzeptionell falsch - lokale Variable, die "außerhalb" weiter benutzt werden, ist problematischer Code.
Android und OSX haben unterschiedliche Speicherverwaltung, deshalb funktioniert das auf Android, weil die Objekte erst dann freigegeben werden, wenn keine Referenz mehr drauf ist. Unter OSX wird der Speicher freigegeben, sobald die Objekte out of scope sind.
"The Android, iOS and Linux compilers use ARC memory management for objects. The Windows and OSX compilers use the classic manual memory management, where ARC is supported only on interface references, not objects. On the other hand, FMX as a cross-platform framework, and uses different memory management systems, depending on which
OS platform it runs on."