我意识到许多人有时会在他们的代码中使用NS_INLINE
函数。我很好奇他们如何知道何时使用它以及为什么使用它。
我读过INLINE
函数的指令比objective-C
函数少。我在这方面有点迷茫,因为我对C不太了解。
我看到的一些例子是这些:
NS_INLINE id NilToEmptyString(id obj)
{
return obj ? : @"";
}
NS_INLINE BOOL isRunningTests(void)
我想在某些特定的地方使用它。例如。我需要获取图库的所有assets
,然后检查他们是否有location
和date
。我想把这些功能checkLocation
做,checkDate
作为inline
函数来做。
有些用户有 5000 张图片,使用 iPhone 4s 时时间增加到 5 分钟,这太多了。我想重构代码,我读到有时inline
函数并不是一个坏方法。
>NS_INLINE
是__attribute__((always_inline))
编译器指令的宏,它比普通的inline
关键字更强。仅当您非常确定内联将导致更快的代码而不会造成不必要的可执行膨胀时才使用它。