On 30/03/2010, at 8:32 PM, simon Scylla wrote:

> i need to port some code to iphone and now i find that i can not call system
> interface of objc. i can rename my files from 888.c  to ***.m and it works.
> but i do not wanna rename my files.
> what should i do?i think there must be some choice in xcode.but i don't
> konw......[?]

Wrap your C functions in Objective-C methods.

For example:

SomeController.m

#import "libwhatever.h"

@implementation SomeController

+ (void)initializeLibrary
{
        InititaliseCLibrary();
}

- (BOOL)writeToURL:(NSURL *)url
{
        char path[255];
        //convert URL to C string using NSURL/CFURL API here

        //call C library
        int result = WriteFileToPath(...);

        //return a value
        return (result == 0 ? YES : NO);
}

....and so on. This is the exact same way parts of Carbon and CoreFoundation is 
used in an Objective-C based application.

> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/kiel.gillard%40gmail.com
> 
> This email sent to kiel.gill...@gmail.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to