DWRandom 0.1.11

DWRandom 0.1.11

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2016年3月

David Westerhoff 维护。



DWRandom 0.1.11

  • 作者:
  • David Westerhoff

Alt text

有时生活需要一点随机性。

无论是否是从袋子里抓取弹珠,从一副牌中抽一张牌,还是其他完全不同的事物,这个库都会为您添加一个简单而强大的功能,即随机行为。

DWRandom 是一个轻量级框架,用 Objective-C 编写,使得在许多 Foundation 核心对象中进行随机化变得容易。接口基于扩展,旨在使用简单,学习轻松。如果想要在项目中为随机化添加简洁的一行代码,请使用 DWRandom。

目录


功能


为什么使用这个库而不是编写自己的随机化实用工具方法?虽然您可以这样做,但这里有几个原因可能促使您在项目中使用 DWRandom。

  • 极简单的开发者界面,很多优美的单行代码
  • 100% 文档覆盖
  • 对所有方法的全面测试
  • CocoaPods 集成,快速开始
  • 完全基于扩展,无需额外类
  • 正确实现,更多详情请见实现

安装


源代码

您可以使用 git 克隆仓库

git clone https://github.com/dmwesterhoff/DWRandom.git

然后将文件添加到您的项目中,并使用本地导入头文件

#import "DWRandom.h"

用法


为了使其易于记忆,DWRandom 库中的所有方法前面都加有“random”一词。例如,从数组中选择随机元素。

id randomObject = [array randomObject];

或获取随机 UIColor...

UIColor *randomColor = [UIColor randomColor];

容易记住吧?以下是所有可用方法的完整列表,有关更多示例的复制粘贴片段,请查看示例

Foundation+DWRandom


NSArray
- (id)randomObject;
+ (NSArray*)randomShuffle:(NSArray*)array;
NSMutableArray
- (id)randomObject;
- (void)randomShuffle;
+ (NSMutableArray*)randomShuffle:(NSMutableArray*)array;
NSDictionary
- (id)randomKey;
- (id)randomValue;
NSMutableDictionary
- (id)randomKey;
- (id)randomValue;
NSSet
- (id)randomObject;
NSMutableSet
- (id)randomObject;
NSOrderedSet
- (id)randomObject;
NSCountedSet
- (id)randomObject;
NSData
+ (NSData*)randomDataOfLength:(NSUInteger)length;
NSNumber
+ (BOOL)randomBool;
+ (unsigned int)randomInteger;
+ (unsigned int)randomIntegerWithMax:(unsigned int)max;
+ (unsigned int)randomIntegerWithMin:(unsigned int)min
                                 max:(unsigned int)max;
+ (NSNumber*)randomNumber;
+ (NSNumber*)randomNumberWithMax:(unsigned int)max;
+ (NSNumber*)randomNumberWithMin:(unsigned int)min
                             max:(unsigned int)max;
NSString
- (NSString*)randomCharacter;
+ (NSString*)randomStringOfLength:(NSUInteger)length;
+ (NSString*)randomStringOfLength:(NSUInteger)length
                           option:(DWRandomStringOption)option;
+ (NSString*)randomStringOfLength:(NSUInteger)length
                     characterSet:(NSString*)characterSet;
+ (NSString*)randomShuffle:(NSString*)string;
NSMutableString
- (void)randomShuffle;
- (NSString*)randomCharacter;

UIKit+DWRandom


UIColor
+ (UIColor*)randomColor;
+ (UIColor*)randomColorWithAlpha:(CGFloat)alpha;
+ (UIColor*)randomColorWithRandomAlpha;

示例


即将推出...

文档


您可以在这里查看完整的参考文档。

实现


该库的底层是 arc4random() 函数,更具体地说,是 arc4random_uniform(),因为它避免了像 arc4random() % n 这样的模运算偏差。arc4random 方法与其他“等效”方法相比,范围也显著更好。

arc4random 手册页说明

The arc4random() function uses the key stream generator employed by the
arc4 cipher, which uses 8*8 8 bit S-Boxes.  The S-Boxes can be in about
(2**1700) states.  The arc4random() function returns pseudo-random numbers
in the range of 0 to (2**32)-1, and therefore has twice the range of
rand(3) and random(3).

一些关于模运算偏差的信息来自手册页

arc4random_uniform() will return a uniformly distributed random number
less than upper_bound.  arc4random_uniform() is recommended over construc-
tions like ``arc4random() % upper_bound'' as it avoids "modulo bias" when
the upper bound is not a power of two.

使用 arc4random 函数族的好处之一是,其中没有函数需要明确地初始化,因为它在幕后自动完成。

贡献


有个好主意并想贡献力量?以下是您如何帮助...

  1. 分叉它
  2. 创建您的功能分支: git checkout -b my-new-feature
  3. 提交您的更改: git commit -am 'Add some feature'
  4. 推送到分支: git push origin my-new-feature
  5. 提交拉取请求

历史


v0.1.0 - 初始项目发布 (3/6/16)

路线图


  • +90% 代码测试覆盖率
  • AppKit 类
  • 从可变数组中随机添加/弹出

参考


适合想自己挖掘的人的好读物。

作者


David Westerhoff - [email protected]

许可证


The MIT License (MIT)

版权所有 (c) 2016 David M. Westerhoff

特此授权,免费提供给任何人,无论获得本软件及相关的文档文件(“软件”),均可不经限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、转让、出售软件复制品,并允许获取该软件的人按照以下条件进行...

上述版权声明和本许可声明应包含在软件的所有副本或主要内容中。

软件按“现状”提供,不提供任何形式的保证,无论是明确的还是隐含的,包括但不限于对适销性、特定用途的适用性和非侵权的保证。在任何情况下,作者或版权持有者不对任何索赔、损害或其他责任承担责任,无论这些责任是由于合同、侵权或其他原因引起的,这些责任是从、因为或与软件的使用或任何其他方式联系在一起的。