[Pythonmac-SIG] Calling a python objc class method from cocoa

s s listsin at integrateddevcorp.com
Sun Oct 19 03:09:28 CEST 2008


Try using:

	def setdefaulttimeout_(cls,timeout):

Since your method would be setdefaulttimeout: in objc, it's necessary  
to replace the ':' with an underscore in your Python code.

S
aka Steve Steiner


On Oct 18, 2008, at 6:15 PM, Saptarshi Guha wrote:
> Hello,
> I have a mainly cocoa app which uses some Python modules.  I need to  
> call a classmethod of a NSObject subclass written in
> python from Cocoa
> =Structure=
>
> After loading the Python interpreter, i call this method
>
> -(void)initialize
> {
> 	Class pySocket = NSClassFromString(@"pySocket");
> 	NSLog(@"%@",pySocket);
> 	[pySocket setdefaulttimeout:10];
> }
>
> pySocket:
>
> from Foundation import *
> import socket
> class pySocket(NSObject):
> 	#no init method right now, only want to run class methods
>     @classmethod
>     def setdefaulttimeout(cls,timeout):
>         socket.setdefaulttimeout(timeout)
>
> ==Error==
>
> I get the following error:
> 2008-10-18 17:48:14.227 argnostic[10697:10b] pySocket
> 2008-10-18 17:48:14.228 argnostic[10697:10b] *** +[pySocket  
> setdefaulttimeout:]: unrecognized selector sent to class 0x3b33d0
> 2008-10-18 17:48:14.228 argnostic[10697:10b] *** +[pySocket  
> setdefaulttimeout:]: unrecognized selector sent to class 0x3b33d0
>
> How then do I call a Python NSObject subclasses classmethods from  
> cocoa?
> Thank you
> Saptarshi
>
>
> Saptarshi Guha | saptarshi.guha at gmail.com | http://www.stat.purdue.edu/~sguha
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig

On Oct 18, 2008, at 6:15 PM, Saptarshi Guha wrote:

> Hello,
> I have a mainly cocoa app which uses some Python modules.  I need to  
> call a classmethod of a NSObject subclass written in
> python from Cocoa
> =Structure=
>
> After loading the Python interpreter, i call this method
>
> -(void)initialize
> {
> 	Class pySocket = NSClassFromString(@"pySocket");
> 	NSLog(@"%@",pySocket);
> 	[pySocket setdefaulttimeout:10];
> }
>
> pySocket:
>
> from Foundation import *
> import socket
> class pySocket(NSObject):
> 	#no init method right now, only want to run class methods
>     @classmethod
>     def setdefaulttimeout(cls,timeout):
>         socket.setdefaulttimeout(timeout)
>
> ==Error==
>
> I get the following error:
> 2008-10-18 17:48:14.227 argnostic[10697:10b] pySocket
> 2008-10-18 17:48:14.228 argnostic[10697:10b] *** +[pySocket  
> setdefaulttimeout:]: unrecognized selector sent to class 0x3b33d0
> 2008-10-18 17:48:14.228 argnostic[10697:10b] *** +[pySocket  
> setdefaulttimeout:]: unrecognized selector sent to class 0x3b33d0
>
> How then do I call a Python NSObject subclasses classmethods from  
> cocoa?
> Thank you
> Saptarshi
>
>
> Saptarshi Guha | saptarshi.guha at gmail.com | http://www.stat.purdue.edu/~sguha
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythonmac-sig/attachments/20081018/04de35f1/attachment.htm>


More information about the Pythonmac-SIG mailing list