[Pythonmac-SIG] Calling a python objc class method from cocoa
Saptarshi Guha
saptarshi.guha at gmail.com
Sun Oct 19 06:56:14 CEST 2008
Hello,
My apologies, please forget the point numbered (2). My embarrassing bad.
regards
Saptarshi
>
>
> 2)Also if I'm calling PyObjc NSObject subclasses from Objective C -
> i dont need to add underscores, i think the underscores are
> only required if called Objective C methods (to get around the ":"),
> e.g I could add the following instance method
> def moo(self):
> NSLog("Moo")
> Instantiate pySocket in objective-c and call [v moo] (v is a
> pySocket instance) and this works.
>
> However, I cant seem to call the class method.
>
> Pyobjc v 2
> Regards
> Saptarshi
>
> On Oct 18, 2008, at 9:09 PM, s s wrote:
>
>> 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
>>
>
> Saptarshi Guha | saptarshi.guha at gmail.com | http://www.stat.purdue.edu/~sguha
> Meade's Maxim:
> Always remember that you are absolutely unique,
> just like everyone else.
>
Saptarshi Guha | saptarshi.guha at gmail.com | http://www.stat.purdue.edu/~sguha
Timing must be perfect now.
Two-timing must be better than perfect.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythonmac-sig/attachments/20081019/12a86415/attachment.htm>
More information about the Pythonmac-SIG
mailing list