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 | [EMAIL PROTECTED] | http://www.stat.purdue.edu/~sguha
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@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 | [EMAIL PROTECTED] | http://www.stat.purdue.edu/~sguha
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to