首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在目标c中将NSArray过滤为新的NSArray

在Objective-C中将NSArray过滤为新的NSArray,你可以使用以下方法:

首先,创建一个新的NSArray,并将其添加到原始数组中的所有元素,可以使用arrayByAddingObjectsFromArray:. 然后,使用filteredArrayUsingPredicate将其过滤为符合条件的数组。

以下是一种方法:

代码语言:objective-c
复制
- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate
{
    NSMutableArray *filteredArray = [NSMutableArray array];
    for (id item in originalArray) {
        if ([predicate evaluateWithObject:item]) {
            [filteredArray addObject:item];
        }
    }
    return filteredArray;
}

使用以下示例代码,你可以使用predicate变量:

代码语言:objective-c
复制
NSPredicate *predicate;
predicate = [NSPredicate predicateWithFormat:@"attribute == %@", @"value"]; // 过滤为等于value属性的元素
    NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate];

在上述代码中,originalArray表示源NSArray,filteredArray表示筛选后的NSArray。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS小技能:参数名ASCII码从小到大排序、对象数组排序

*arFiltered = [maTemp filteredArrayUsingPredicate:predicate];//以一定条件(特定日期)过滤maTemp数组,即进行大数据搜索。...IPOrderDataFrame frameListWith:data.maOrderData]; [self.maOrderQuery addObject:data]; } 2.2 返回距离目标地址最近...POI 需求:对高德SDK返回的当前位置POI数组按照距离排序 +(NSString*)POInamebyArr:(NSArray*)arr{ // 返回距离目标地址最近POI:对元素根据...= sortedArray.firstObject; return firstObject.name; } 2.3 将数组按照时间戳排序 /** IOS中将对象数组按照时间戳排序...*arFiltered = [listModels filteredArrayUsingPredicate:predicate];//以一定条件(特定日期)过滤maTemp数组,即进行大数据搜索。

1.7K10

【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词

: "方法 : 判断是否包含指定元素, 如果包含返回该元素, 否则返回 nil; -- "objectPassingTest : " 方法 : 使用代码块过滤集合元素, 通过验证元素组成 NSSet...NSArray * ) filteredArrayUsingPredicate : (NSPredicate *) predicate :" 方法 : 使用谓词过滤 NSArray 集合, 返回过滤集合...; -- "- (NSSet * ) filteredSetUsingPredicate : (NSPredicate *) Predicate :" 方法 : 使用谓词过滤 NSSet 集合, 返回一个集合...: "方法 : 判断是否包含指定元素, 如果包含返回该元素, 否则返回 nil; -- "objectPassingTest : " 方法 : 使用代码块过滤集合元素, 通过验证元素组成 NSSet...NSArray * ) filteredArrayUsingPredicate : (NSPredicate *) predicate :" 方法 : 使用谓词过滤 NSArray 集合, 返回过滤集合

1.2K20

iOS-谓词使用详解import typedef NS_ENUM(NSInteger, PersonSex) {

- NSArray提供了如下方法使用谓词来过滤集合 `- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate:`使用指定谓词过滤...NSArray集合,返回符合条件元素组成集合 - NSMutableArray提供了如下方法使用谓词来过滤集合 `- (void)filterUsingPredicate:(NSPredicate...:(NSPredicate *)predicate NS_AVAILABLE(10_5, 3_0):`作用同NSArray方法 - NSMutableSet提供了如下方法使用谓词来过滤集合 `-...>通过上面的描述可以看出,使用谓词过滤不可变集合和可变集合区别是:过滤不可变集合时,会返回符合条件集合元素组成集合;过滤可变集合时,没有返回值,会直接剔除不符合条件集合元素 下面让我们来看几个例子...###3.谓词中使用占位符参数 我们上面所有的例子中谓词总是固定,然而我们现实中处理变量时决定了谓词应该是可变。下面我们来看看如果让谓词变化起来。

1.6K50

30分钟摸透iOS中谓词NSPredicate来龙去脉

iOS开发Cocoa框架中,有提供NSPredicate类,这个类通常也被成为谓词类,其主要作用是Cocoa中帮助查询和检索,但是需要注意,实质上谓词并不是提供查询和检索支持,它是一种描述查询检索条件方式...= [NSPredicate predicateWithFormat:@"length = 5"]; //对于这个数组中字符串,即是检索字符串长度5元素 NSArray * test...    谓词主要用在验证对象,数组和集合过滤。...对象验证前面有介绍,关于数据和集合过滤函数,类别如下: @interface NSArray (NSPredicateSupport) //不可变数组使用过滤器后返回数组...; @end @interface NSSet (NSPredicateSupport) //不可变集合过滤后返回集合 - (NSSet *)filteredSetUsingPredicate

1.4K20

iOS开发:NSSet使用

前言 iOS开发过程中,有些时候会用到去重处理,也就是去掉重复元素或者个数,然后再进行排序处理,这就使用到了集合(NSSet),它其实是一种哈希表,通过运用散列算法来查找集合中元素。...集合和数组相同点:都是存储不同元素地址,不同点:NSSet中元素都是被自动过滤之后不会重复元素,NSArray元素却是允许重复;NSSet是一个无顺序集合,NSArray是一个有顺序集合...一、基本常用方法 (一)NSSet 1、集合初始化: NSSet初始化时候,赋值时候如果放入两个相同元素的话,会自动删除其中一个相同元素。...eg: NSSet *set1 = [[NSSet alloc] initWithObjects:@“a”,@“b”,@“c”,@“d”, nil]; //初始化集合 [set1 count]; //返回集合中个数...:set2]; //判断两个集合是否相等 5、判断set2是否是set3子集 NSSet *set3 = [[NSSet alloc] initWithObjects:@“a”,@“b”,@“c

1.4K64

Objective-CNSArray学习笔记(IOS 9.1)

---- NSArray类简介 有序且只可以存储Objective-C对象数组 初始化后,内容不可变,长度也不可变,不能进行增、删、改操作 不能存放nil (nil是标志数组结束)...[])aBuffer range:(NSRange)aRange //根据aRange指定范围复制数组元素到C语言aBuffer缓冲区中(aBuffer可以通过malloc进行创建) - (NSArray...otherArray共同组成数组(otherArray加到数组末尾) ---- 数组元素排序 - (NSArray *)sortedArrayUsingSelector...aRange 范围元素到一个C语言缓冲区,并返回由这些元素组成一个数组 //arry3 getObjects:(__unsafe_unretained id _Nonnull...),返回排好序数组,要求: // (1).必须要有一个参数 // (2).返回值必须以下三种情况中一种: // 1).

63020

协议与分类--27:Class-continuation分类隐藏实现细节

Class-continuation分类 Class-continuation分类和普通分类不同,它必须定义在其所接续那个类实现文件中 此分类可以声明属性,且此分类没有特定是现实文件,其中方法都定义主实现文件中...一般存放不需要对外公开属性(例子中age) #import @interface Person : NSObject @property (nonatomic...{ _firstName = firstName; _lastName = lastName; } return self; } @end 如果某属性主接口中声明为...“只读”,而类内部要用setter方法修改此属性,那么就在Class-continuation分类中将其扩展“readwrite”(例子中friends) #import <Foundation/Foundation.h...,则可以Class-continuation分类中声明 #import @class User; @interface APP : NSObject

13310

Objective-CNSArray解读

Objective-CNSArray解读     NSArray数组类是Objective-C语言中常用也是重要一个类,除了开发中常用到一些基础功能,NSArray及其相关类中还封装了许多更加强大功能...参数C数组长度 //如果cnt值小于C数组长度,则会对C数据进行截取赋值,如果大于则程序会崩溃 - (instancetype)initWithObjects:(const ObjectType...; //像数组中追加一个元素 这个方法会返回一个数组 - (NSArray *)arrayByAddingObject:(ObjectType)anObject; //像数组中追加一组元素...这个方法会返回一个数组 - (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray...; //返回一个字符串,将数组中元素以separator分隔符进行组合 /* NSArray * array = @[@1,@2,@3,@4]; 将打印1,2,3,4 NSString * res

1.2K20

Objective-C语法糖

当时把注意力放在了深浅拷贝内存地址分析上了,就没太在意,测试做完啦,回顾时候发现数组是用下标的方式获取! 于是就有了个疑问,OC中这样写也行?...为了更好偷懒,于是去百度上Google啦一下这是‘ Xcode 4.4中LLVM compiler 4.0’ 引入特性(2012年WWDC发布东西)。...到这小菜本人就有柳暗花明又一村感觉啦~就可以好好偷一下懒啦~于是系统总结了一下引入特性,话不多说,Coder说话哪能少了code呢!...    之前博客中我是这样初始化NSArray: 1 //NSArray便利初始化 2 NSArray *array1 = [[NSArray alloc] initWithObjects:@...转换为NSNumber是存是ASCII码形式,c输出97 //NSNumber简化 NSNumber *a = @123; NSNumber *b

96750

动态规划数学本质以及通用解法

这种方法时间复杂度 image.png ,虽然不是最佳解决方案确是最通用暴力解决方案。 按照上述规则实现通用解法可以按如下步骤(本文用OC语言实现,其他语言可参考): 1....为了让代码更加通用,我们可以分别加入一个条件过滤器和处理器来让调用者做自定义处理,同时为了保存每次处理结果我们可以加入一个自定义上下文信息来保存扩展参数。因此上述代码改进如下: //辅助函数。...NSInteger subCount = subArray.count; for (NSInteger i = start; i < count; i++) { //保存子集中元素集合中索引...ctx: 保存上下文信息 filter: 指定条件过滤器,入参:子集、子集元素全集中索引数组、上下文。...所以代码如下: NSArray *coins = @[@1,@1,@1,@1,@1,@1,@1,@1,@1,@1,@1,@2,@2,@2,@2,@2,@5,@5]; //开始时最小数量全集。

51810

MagicalRecord,一个简化CoreData操作工具库

MR_context]; 这将会创建一个对象管理上下文,和默认上下文对象有相同对象模型和持久化存储;但是另一个线程中使用时,是线程安全.它自动设置默认上下文对象父级上下文....]; 注意: 强烈 建议默认上下文对象主线程使用并发类型NSMainQueueConcurrencyType对象管理上线文对象创建和设置....实体 键 值 目的 relatedByAttribute String 指定用来链接两个实体关系目标实体中属性.....[0-9] String 指定备用keypath,mappedKeyName指定keypath不存在时使用.规则同上. relatedByAttribute String 指定用来链接两个实体关系目标实体中属性... MagicalRecord之前导入,像这样: // Objective-C #import #import <MagicalRecord

1.5K50

OC学习14——谓词

Java中是没有这种技术,但是有开源框架已经实现了此功能。...NSArray提供了如下方法使用谓词来过滤集合: -(NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate::使用制定谓词过滤NSArray...集合,返回集合中符合谓词条件元素组成集合   NSMutableArray提供了如下方法使用谓词来过滤集合: -(void)filteredUsingPredicate:(NSPredicate *...:(NSPredicate *)predicate::使用制定谓词过滤NSArray集合,返回集合中符合谓词条件元素组成集合  NSMutableSet提供了如下方法使用谓词来过滤集合: -(void...5、直接量:   谓词表达式中,使用双引号和单引号效果是一样。但是单引号只能用单引号结束,不能混用。

1.1K100

关于搜索出来内容根据权重进行排序

ab1cd权重 0+1+3+4 = 8 1ab2cd权重是 1+2+4+5 = 12 那么这两个进行权重排序是ab1cd 1ab2cd 剩下不满足精确搜索和模糊搜索,应该直接过滤但是考虑到可能这个算法有问题就暂时按照字符串长度进行排序.../** 需要进行排序数组字符串 */ @property (nonatomic, strong) NSArray *searchResult; 进行过滤数据源 /**...:(NSString *)searchText; 进行过滤方法 - (NSArray *)sortSearchResultWithSearchText:(NSString *)...Nonnull stop) { NSRange range = [obj.text rangeOfString:_currentSearchText]; // 查询查询字符串是否查找字符串存在...default: break; } return sortItems; } 根据需要过滤类型进行过滤 /** 计算精确搜索出来权重 @param

1.4K20

RuntimeiOS开发中实际应用

1 关联对象(AssociatedObject ) Catagory主要为已经存在类(主要是系统类)扩展方法,关联对象是runtime开发中应用最广泛,其主要用于Catagory对象增加属性...1.2 相关函数 //一个实例对象添加一个关联对象,由于是C函数只能使用C字符串,这个key就是关联对象名称,value具体关联对象值,policy关联对象策略,与我们自定义属性时设置修饰符类似...可以使用selector: objc_getAssociatedObject(self, @selector(associatedObject)); 或者直接使用_cmd: _cmdObjective-C...一是苹果审核严格,各种理由反反复复被打回去欲哭无泪,二是审核周期长,2017年之前苹果审核周期一般都在三天,如果是应用甚至需要一周以上,如果碰上圣诞节苹果放假我们这边是一般都不会提交审核,于是JSPatch...处理用户登录 5.4Crash防范 OC中容器类空值nil 和数组越界都会直接导致我们app crash 我们一种处理方式是利用Category增加新方法中判断值是否空或者越界,对于新工程我们使用大家约定使用容器

94920

OC - 属性关键字和所有权修饰符

2.修饰强引用,将指针原来指向旧对象释放掉,然后指向对象,同时将对象引用计数加1。3.setter 方法实现是 release 旧值,retain 值,用于OC对象类型。...1.4 可空性 Apple Blog:Nullability and Objective-C 苹果在 Xcode 6.3 引入一个 Objective-C 特性nullability annotations...这样就会造成一个问题: Swift 与 Objective-C 混编时,Swift 编译器并不知道一个 Objective-C 对象到底是optional还是non-optional,因此这种情况下编译器会隐式地将...关键字__nullable和__nonnull是苹果在 Xcode 6.3 中发行。由于与第三方库潜在冲突,苹果在 Xcode 7 中将它们更改为_Nullable和_Nonnull。....相同点:修饰对象时候,assign和weak都不改变对象引用计数。

1.3K31

mach-o文件分析多余类和方法

哪里来?怎么跟otool命令结合起来使用?怎么获取差值?怎么结合使用正则表达式,等等?笔者没有大佬带领情况下,只能是一步步趟过来。...,单行读取+标记位时,同样逻辑也可以使用,即每次000000010开头时,说明是一个开始,存储对应地址,设置可以存储名字标记位,然后读取到name时,就用{ classAddress: className...也可以在上面的获取差值代码中过滤指定类。...也可以在上面的获取差值代码中过滤指定代理方法。...项目还有待完善地方,比如系统方法过滤,基类判断逻辑,等等,留待后续补充。但整体分析逻辑如上,笔者趟过了河,先分享敬,。

3.5K11
领券