在Objective-C中使用C定义

时间:2010-12-15 10:23:56

标签: objective-c c ios

我会定义一些辅助函数,我更喜欢用C代替Objective-C。

在Objective C项目中添加标头和实现C文件的“最佳实践”是什么?

如果我需要在我的函数中使用Objective-c定义,我需要在头文件C文件中包含什么(UIKit?)?

示例:我想为NSString创建NSLog的快捷方式,我可以在我的C文件中创建类似于此代码的东西吗? :

void MYLog (NSString *string){
  NSLog(@"%@",string);
}

2 个答案:

答案 0 :(得分:2)

如果您的源文件编译为c / obj-c代码(扩展名为.m或在xcode中手动设置类型),请确保您可以在c代码中使用objective-c函数(反之亦然)

为了使核心功能有效,我认为导入<Foundation/Foundation.h><UIKit/UIKit.h>就足够了。这些标题可能已经导入您的预编译标题(* .pch文件)中,因此您甚至可能不需要导入它们。

如果你想扩展一些UIKit类的功能,还要考虑实现自定义类类,而不是使用普通的c函数。

答案 1 :(得分:0)

你可以很容易地做到这一点。您不必导入任何内容,因为前缀标头已导入UIKitFoundation。记录器功能如下所示:

// Logger.h
void MyLog(NSString *str);

// Logger.m
#import "Logger.h"
void MyLog(NSString *str) {…}