为数组 NSArray添加一些 分类方法

#import "NSArray+Operation.h"

@implementation NSArray (Operation)

// 数组的平均数

-(float)averageValueOfElements{

NSNumber * value = [self valueForKeyPath:@"@avg.floatValue"];

return value.floatValue;

}

// 每个元素的和

-(float)sumValueOfElements{

NSNumber * value = [self valueForKeyPath:@"@sum.floatValue"];

return value.floatValue;

}

// 返回随机的子数组

-(NSArray *)randomizedArray{

if (self.count == 0) {

return self;

}

NSMutableArray *results = [NSMutableArray arrayWithArray:self];

NSUInteger i = [results count];

while(--i > 0) {

int j = arc4random() % (i+1);

[results exchangeObjectAtIndex:i withObjectAtIndex:j];

}

return [NSArray arrayWithArray:results];

}

//返回随机一个元素

- (id)hh_randomObject {

NSUInteger count = self.count;

return ((count > 0) ? self[arc4random_uniform((uint32_t)count)] : nil);

}

// 返回指定的某个

- (id)hh_objectOrNilAtIndex:(NSUInteger)index {

return index < self.count ? self[index] : nil;

}

时间: 2024-12-13 18:40:41

为数组 NSArray添加一些 分类方法的相关文章

【转】不可变数组NSArray与可变数组NSMutableArray

原文网址:http://www.jianshu.com/p/1ad327f56d1d 不可变数组NSArray //创建一个空数组 NSArray *array = [NSArray array]; //这样创建是没有意义的. //创建只有一个元素的数组 NSArray *array1 = [NSArray arrayWithArray:@"a"]; NSArray *array2 = [NSArray arrayWithObject:@"b"]; //使用便利构造

Objective-C学习-数组 NSArray 和 NSMutableArray(欢迎提意见)

在学习 Objective-C的过程中,感觉数组在这一个学习方面是一个比较大的应用域,所以写这篇随笔来总结一下. 首先声明的是,与C语言的数组不同,Objective-C的是数组只能用来存储对象,而不是存储int .double.char等基础数据类型,一般要存这些基础数据类型,对于我这个刚学 Objective-C的新手来说,我的做法是将有关数字的基础类型 如 int .double.char首先转换成一个叫做 NSNumber的类  char*类型的转换成  Objective-C的字符串

Objective-C数组 NSArray与NSMutableArray的区别 NSDictionary与 NSMutableDictionary 的区别 == int,NSInteger,NSUIn

Objective-C数组相关操作. // insert code here... NSLog(@"数组"); //指定多个字符串创建数组 NSArray *array; array=[NSArrayarrayWithObjects:@"0-asd",@"1-fds",@"2-哈咯",@"3-个人",nil]; //数组的长度 NSLog(@"数组长度%d",array.count);

iOS objective-c之-8:数组NSArray 可变数组-(NSMutableArray)

镔哥自己了一些数组方法,网上又查了些方法出来,应该是比较全面的. 下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil]; 1.获取数组中总共有多少个对象. - (NSUInteger)count; NSLog(@"%d",[array count

iOS - 数组(NSArray)

1. 数组的常用处理方式 //--------------------不可变数组 //1.数组的创建 NSString *s1 = @"zhangsan"; NSString *s2 = @"lisi"; NSString *s3 = @"wangwu"; //(1) NSArray *array1 = [[NSArray alloc] initWithObjects:s1,s2,s3, nil]; NSLog(@"%@",a

prototype为对象添加属性和方法

可以通过prototype来为已经定义好的的"类"添加属性和方法.这里来了解一下prototype的基础知识.prototype是"构造函数"的属性,不是实例的属性. 示例: function HiClass() { this.sayHi = function(){ alert("hi"); } } var obj = new HiClass(); alert(HiClass.prototype);//outputs [object, objec

数组的有关属性和方法

数组的创建 通过构造函数 var  arr = new  Array(): 如果预先知道要保存的项目的数组的数量,也可以给构造函数传递该数量.并且该数量会自动变成length属性的值. var   colors  = new   Array(20): 也可以向Array构造函数传递数组中的应该包含的项 var   colors  = new  Array(1, 2,3,4) 在使用Array构造函数时也可以省略new操作符 创建数组的第二种方式是使用数组字面量表示法 var  color = [

关于 JavaFX ——我对通过代码写 UI界面的层级式分类方法

前言:在我的另一篇文章“我对 Java 标志符的命名方法”中有提到:对于返回控件的方法我是使用类似:W_borderPane() 的方式编写的. 现在我提出一种通过代码编写 UI 界面的层级式分类方法: 示例代码: // 根容器 private static BorderPane W_borderPaneBasis(){ // 创建 BorderPane _borderPaneBasis = new BorderPane(); // #自我定义 _borderPaneBasis.setBackg

Foundation框架—— 数组 (NSArray NSMutableArray )

基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4.OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. NSArray NSArray *arr=[NSArray array];//初始化一个空数组 NSArray *arr1=[NSArrayarrayWithObject:@"123"];//初始化一个元素的数组