Как ссылаться на метод класса? - PullRequest
0 голосов
/ 21 февраля 2011

У меня проблема при использовании qsort。

qsort(ArrayToSort, size_a, size_b, FunctionPointer);

Если FunctionPointer объявлен как int (* FunctionPointer) (); тогда все в порядке.

Если FunctionPointer объявлен как FunctionPointer = @selector(MyMethod);, то у меня ошибка времени выполнения BAD_ACCESS。

Здесь MyMethod - мой собственный метод класса 100

int MyMethod(const void *,const void *);

Пожалуйста, сообщите мне. Большое спасибо!

Ответы [ 2 ]

1 голос
/ 21 февраля 2011

Проблема в том, что вы пытаетесь смешать код C с кодом Obj-C.@selector(someMethod:) возвращает SEL, который не является ни функцией C, ни методом Obj-C.То, что вы захотите сделать, это либо следовать предложению @ yan и использовать для сравнения функцию C, либо (мое предложение) вообще не использовать qsort, просто использовать методы NSArray для сортировки.

1 голос
/ 21 февраля 2011

Не используйте метод класса для сравнения. Просто объявите обычную функцию C и передайте ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...