Apple ha dejado de utilizar el método NSObject
poseAsClass:
para OS X v10.5 y superior. ¿Hay alguna otra manera de hacer que el planteamiento de clase funcione?¿Alternativa a poseAsClass en Mac OS X 10.5 y superior?
Respuesta
No creo que haya un equivalente de nivel de clase, pero puede intercambiar la implementación de dos métodos, que a menudo era el propósito de usar poseAsClass:
(por supuesto, puede intercambiar más de un método si necesita anular múltiples métodos en una clase). Desea method_exchangeImplementations en el tiempo de ejecución de Objective-C 2.0 (#import objc/runtime.h
). Una palabra de advertencia: después de llamar a method_exchangeImplementations, llamar al 'nuevo' método realmente llama a la definición del método original.
¿Qué estás tratando de hacer? A menudo hay maneras de posar. Sin embargo, admitiré que a veces es la única forma :)
Estoy tratando de realizar un seguimiento de todos los mensajes de enlace (y desvinculación) en una aplicación Cocoa. Quiero 'NSLog()' cierta información de depuración cada vez que se realiza un enlace entre un objeto y otro. Terminé usando 'method_exchangeImplementations' en los métodos de enlace para' NSObject', y funcionó. –
Parece que lo está haciendo bien :) Sería cauteloso al hacerlo en el código de envío. –
- 1. Cómo configurar PEAR en Mac OS X 10.5 Leopard
- 2. semáforos POSIX en Mac OS X: sem_timedwait alternativa
- 3. ¿Cuál es la mejor manera de utilizar OpenMP en Mac OS X 10.5 y Ubuntu 10.4?
- 4. ¿Funciona Java FileChannel.tryLock en Mac OS X?
- 5. ¿Existe una alternativa de virt-manager para Mac OS X?
- 6. Objeto OpenGL brillante/brillante en Mac OS X 10.6, pero no en 10.5. ¿Por qué?
- 7. ¿Hay alguna alternativa de KCacheGrind para Mac Os X?
- 8. pygettext.py y msgfmt.py en Mac OS X
- 9. JNotify en Mac OS X?
- 10. Ajustes de oscilación para Mac OS X
- 11. Sync iOS y Mac OS X datos
- 12. ¿Cómo manejo varios archivos arrastrando/soltando desde Finder en Mac OS X 10.5?
- 13. Obtenga el nombre de usuario registrado en Mac OS X 10.5
- 14. Mac OS X: Cambiar a Python 2.7.3
- 15. git: comando no encontrado (en OS X 10.5)
- 16. GKSession con Mac OS X
- 17. SetWindowsHookEx para Mac OS X?
- 18. Depuración y eliminación de aplicaciones en Mac OS X?
- 19. Mac OS X View Swapping
- 20. Creación de Android 4.0 en Mac OS X Lion
- 21. ldconfig para Mac OS X
- 22. install make command sin tener make (mac os 10.5)
- 23. ¿La mejor alternativa gratuita a las versiones SVN en Mac OS X?
- 24. desinstalar ipython mac os x
- 25. clamxav homebrew mac os x
- 26. Symbian C++ Desarrollo bajo Mac OS X
- 27. UIActivityIndicatorView para Mac OS X?
- 28. Aprendiendo ASP.NET MVC en Mac OS X
- 29. Desarrollo de Blackberry en Mac OS X
- 30. Errores Virtualenvwrapper en Mac OS X Lion
¡Gracias! Me las arreglé para hacer que esto funcione, usando una combinación de la respuesta de mcandre y la documentación a la que se vinculó. Una nota rápida: tuve que '#incluir" objc/runtime.h "' para usar los métodos que describes. –