NOCategories 0.4.4

NOCategories 0.4.4

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最新版本2015年10月

Natalia Osiecka维护。



  • natalia.osiecka

一组便利的分类。

NSString+NOCSize

在您的视图布局的Subviews方法中简单放入

CGSize demoLabelSize = [self.demoLabel.text noc_backwardCompatibleSizeWithFont:self.demoLabel.font constrainedToSize:frame.size];
[self.demoLabel setFrame:CGRectMake(originX,
                                    originY,
                                    demoLabelSize.width,
                                    demoLabelSize.height)];

NSAttributedString+NOCSize.h

在您的视图布局的Subviews方法中简单放入

CGSize attrubutedStringSize = [attributedString noc_backwardCompatibleSizeConstrainedToSize:CGSizeMake(150, 200)];
[self.demoLabel setFrame:CGRectMake(0, 0, attrubutedStringSize.width, attrubutedStringSize.height)];

UIViewController+NOCViewInitializer

为了手动加载您自定义的视图类并将其实例分配给UIViewController的view属性,只需在loadView方法中放入

- (void)loadView {
    _aView = [self noc_loadViewOfClass:[NOCExampleView class]];  //_aView is @property of NOCExampleView class stored locally for easier access
}

宏 + 函数

警告

在您的项目中实际的警告越少越好。打开项目设置 -> 目标 -> 编译设置;搜索“将警告视为错误”并将标志设置为YES。然后所有警告都将被视为错误。您可以以这种方式编写自定义警告(有关更多的警告,请参阅NOCMacros.h)

noc_warnHack("You can add warnings this way. Then enable warnings as errors in your project configuration and write clean code.")

字符串快捷方式。

我已经移除了字符串本地化快捷方式。相反,我建议使用Alcatraz软件包管理器Quick-Localization插件

位操作

如果您有一个变量并想更改内部位但从不记得操作,只需使用

typedef NS_ENUM(NSUInteger, NOCDifficulty)  { // you can use NS_OPTIONS instead
    NOCDifficultySimple = 1 << 0,
    NOCDifficultyMedium = 1 << 1,
    NOCDifficultyHard = 1 << 2,
};
int flags = 0;
noc_setBitOne(flags, NOCDifficultyHard);
noc_setBitZero(flags, NOCDifficultyHard);
noc_isBitOne(flags, NOCDifficultyHard)

比较浮点数

您绝对不应该通过==比较浮点数等,因为结果可能是误导性的。为了确保永远不会实现此类错误,请打开项目设置 -> 目标 -> 编译设置;搜索“其他警告标志”;粘贴“-Wfloat-equal”。您可以使用便利的方法来比较浮点数

if (noc_isCGFloatEqualToCGFloat(1.f, 1.0)) {
    NSLog(@"Float and double are equal");
}
NSLog(@"%.2f", noc_CGFloatAbs(-5));

使用floor/ceil/round操作修复CGFloat警告

由于CGFloat将要么是float要么是double(取决于架构),所以在使用round或roundf时您会收到警告。为了不进行类型转换(缩小代码)而使其沉默,请使用

noc_roundCGFloat(1.5)

HEX(HTML)颜色

将十六进制颜色解码为UIColor的便利方法。

[self.demoLabel setBackgroundColor:noc_hexToColor(0xAE323b, 1.f)];

请参阅示例以获取更深入的示例或查看源代码。

安装

子模块

在你的项目 git 文件夹中

git submodule init
git submodule add --copy link to the repo--
git submodule update

复制 NOCategories/NOCategories 文件夹中的所有文件。

仅下载并附加

这很不建议,因为你将无法看到代码更新。克隆或下载源代码,复制 NOCategories 文件夹中的所有文件。

变更日志

  • 0.4.1 添加了 degrees/radians 函数。添加了单元测试。
  • 0.4.0 添加了 noc_round/floor/ceilCGFloat 函数。修复了 noc_isFloatMore 和 noc_isFloatLess 函数中的错误。
  • 0.3.0 添加了 UIViewController+NOCViewInitializer 类。
  • 0.2 添加了宏、自定义警告,并更新了示例。
  • 0.1 添加了基本项目、配置了样式。添加了示例和 NSString+NOCSize 类。

作者

Natalia Osiecka, [email protected]

许可

Apache 2.0 许可下可用。有关更多信息,请参阅 LICENSE 文件。

要求

需要 Xcode 7,目标 iOS 6.0 或更高版本。

Bitdeli Badge