我们可以将C函数定义为inline
。但Obj-C方法怎么样?我可以将方法“内联”编辑吗?
答案 0 :(得分:6)
遗憾的是,目标C方法无法内联。
有很多事情可以影响在发送消息时调用哪个方法,并且它可以在运行时更改,因此无法进行内联。 Java有“最终”来缓解这个问题,但Objective C没有直接的等价物。相反,您可以在时间紧迫的情况下使用普通C函数来避免该问题。
答案 1 :(得分:2)
不,Objective-C
方法不能。
C
函数可以是。
Objective-c在#define
中提供了方便的coreGraphics.h
,因此您可以使用它来调整类似的内容
#if !defined(CG_INLINE)
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define CG_INLINE static inline
# elif defined(__cplusplus)
# define CG_INLINE static inline
# elif defined(__GNUC__)
# define CG_INLINE static __inline__
# else
# define CG_INLINE static
# endif
#endif
所以你的内联函数将如下所示:
CG_INLINE void doWork(...) { }