Is it possible to use Xcode using iPhone 3.1.3 SDK to compile a standard C program that will work on the iphone? I'm trying to use xcode to compile a basic 'hello world' but to no avail. Do I need to obtain an additional application template or am I just missing something?
If you use the boiler plate template for a cocoa application, which uses NSApplicationMain and the few other structures necessary to jumpstart a cocoa program, then you are free to start writing C methods without ever hitting objective-c. Caveats:
1) for testing purposes it looks like, when using xcode, your best bet is to start with the "Window-Based Application" template offered under the iphone category of new projects. It is a minimal template with no UI -- just a window.
2) There is no "main()" persay in an iphone. You have to place your code in the "AppDelegate.m" file which will actually be "[YourProjectName]AppDelegate.m". Inside here you will find a method:
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ //YOUR CODE GOES HERE
return YES; }
This is a good place to call C functions you've written, which you can do either in that source file, or better, in a separate file that you #import. Note that the application will block until all of your c-code finishes executing.
3) There is no printf, i don't believe. Sorry. One way to get info out is to use NSLog -- but that expects objective-c strings not C strings. So if you want to actually see any status out of your C program, you'll have to use just a tiny bit of objective-c. The line in question is:
char *your_char_pointer = //...gimme a string; NSLog([NSString stringWithCString:your_char_pointer]);
where this will convert your C String into an Objective-C string that NSLog will happily print to the console (seen by using the console application in the Utility folder in Applications on OSX).
That good?
I'm sure this is probably a crud answer, but you my want to check out: 'iPhone Programming: The Big Nerd Ranch Guide'. I've worked through this book myself and it has been a great resource.
And you can certainly use XCode to compile a standard C program and output your 'Hello World' to the console. However, you don't mention whether or not you want to run this program on an iPhone/iPad/iPod Touch.
If you're just looking to learn Cocoa and don't want to necessarily run this on an iPhone, check out the sister book: 'Cocoa® Programming for Mac® OS X (3rd Edition)'.