所以这个问题是为了帮助我更好地理解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