Re: [Pyobjc-dev] Catergory Question ...
Brought to you by:
ronaldoussoren
|
From: Mic P. <mic...@gm...> - 2009-05-08 17:35:24
|
Hi Ronald,
I'm still having issues with this. My category is defined in the file
NSStringTextile.py as follows ...
from Foundation import *
import objc
import textile
class NSString(objc.Category(NSString)):
@objc.signature('#:#')
def stringFromTextile_(self, aString):
try:
data = textile.textile(aString)
except:
data = ''
return data
And my header file, NSStringTextile.h, as follows ...
#import <Cocoa/Cocoa.h>
@interface NSString (Textile)
+ (NSString *)stringFromTextile:(NSString *)aString;
@end
However, when ever I try to use the category I get the following
message box popup ...
[NSString stringFromTextile:]: unrecognized selector sent to class 0xa0839f20
I have also added my python file to main.py
Any ideas on where I'm going wrong ?
Cheers
-Mic
2009/5/8 Ronald Oussoren <ron...@ma...>:
>
> On Friday, May 08, 2009, at 10:59AM, "Mic Pringle" <mic...@gm...> wrote:
>>Hi,
>>
>>Just a quick question regarding categories.
>>
>>I have a hybrid Obj-c/PyObj-c application and I'd like to know if I
>>add a category in a PyObj-c module, will it be availble to use in the
>>Obj-c side of the project ??
>>
>>If so, does it just work or are there any special instructions I need
>>to follow to get it working ?
>
> Methods you add using an Python category are available in ObjC as well (the same is true for methods you add in a subclass, those can be called from ObjC as well).
>
> Two possible sources for confusion/problems:
>
> * Unless the methods you add are already known to the compiler you'll have to write a header file that the ObjC compiler
> can use. You'll get compiler warnings otherwise.
>
> * Methods that you add in python by default have arguments and a return value of type 'id'. This can be overridden by:
>
> - information extracted from the superclass (if you override a method PyObjC knows the new method should have the
> same signature as the one in a superclass).
> - the method is defined in an informal_protocol that's known to PyObjC, the method signature is then extracted from
> that protocol
> - manual annotations (objc.accessor, objc.selector, ....)
>
> Ronald
>>Thanks
>>
>>-Mic
>>
>>------------------------------------------------------------------------------
>>The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
>>production scanning environment may not be a perfect world - but thanks to
>>Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
>>Series Scanner you'll get full speed at 300 dpi even with all image
>>processing features enabled. http://p.sf.net/sfu/kodak-com
>>_______________________________________________
>>Pyobjc-dev mailing list
>>Pyo...@li...
>>https://lists.sourceforge.net/lists/listinfo/pyobjc-dev
>>
>>
>
|