所以這個問題是爲了幫助我更好地理解Cocoa-touch框架的內部工作原理,它可能看起來像一個非常簡單的問題。可可命令行工具方法聲明
如果您要使用Xcode創建命令行工具,例如使用核心數據,Xcode將在「main.m」文件中生成方法,該方法將圓括號中的參數替換爲表示Objective- C。例如以下是生成的方法聲明
static NSManagedObjectContext *managedObjectContext()
但是,仍然有Objective-C消息在方法內部發送。例如,
NSString *path = [[[NSProcessInfo processInfo] arguments] objectAtIndex:0];
path = [path stringByDeletingPathExtension];
NSURL *modelURL = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"momd"]];
model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
這是因爲main.m文件是一個C/C++文件,而不是一個Objective-C的文件,即使它們共享相同的文件擴展名?感謝您的任何見解!
確實如此,但是您可以使用objc運行時在C中創建類:http://stackoverflow.com/questions/10289890/how-to-write-ios-app-purely-in-c/10290255#10290255 – 2012-07-05 17:16:52