J'essaie d'implémenter une méthode d'accès indexée pour ma classe de modèle en Python, comme pour the KVC guide. Je veux utiliser la méthode à distance optionnelle, pour charger plusieurs objets à la fois pour des raisons de performance. La méthode prend un pointeur vers un tampon C-array dont ma méthode a besoin pour copier les objets. J'ai essayé quelque chose comme ce qui suit, qui ne fonctionne pas. Comment puis-je accomplir cela?Méthode d'accès indexée pyobjc avec plage
@objc.accessor # i've also tried @objc.signature('[email protected]:o^@')
def getFoos_range_(self, range):
return self._some_array[range.location:range.location + range.length]
Modifier: Je trouve enfin la type encodings reference après qu'Apple a déplacé tous les documents. Après avoir lu cela, j'ai essayé ceci:
@objc.signature('[email protected]:N^@@')
def getFoos_range_(self, buf, range):
mais cela ne semble pas fonctionner non plus. Le premier argument est censé être un pointeur vers un C-array, mais la longueur est inconnue jusqu'à l'exécution, donc je ne savais pas exactement comment construire le codage de type correct. J'ai essayé '[email protected]:N^[[email protected]]@'
juste pour voir, et cela n'a pas fonctionné non plus.
Mon objet de modèle est lié à contentArray d'un NSArrayController pilotant une vue tabulaire. Il ne semble pas du tout appeler cette méthode, peut-être parce qu'elle s'attend à une signature différente de celle fournie par le pont. Aucune suggestion?