[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