所以这个问题是为了帮助我更好地理解 Cocoa-touch 框架的内部工作原理,这似乎是一个非常简单的问题。
如果您要使用 Xcode 创建命令行工具,例如,使用 Core Data,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 文件,即使它们共享相同的文件扩展名?感谢您的任何见解!