搜索NSArray1的最佳方法是NSArray2中的值匹配元素

时间:2015-08-31 12:12:38

标签: ios objective-c for-loop nsarray

我对iOS开发完全陌生。

我有NSArray1(parent array)这样的元素:

( (name1,url-x,logo-x), (name2,url2,logo2),(name3,url-y, logo-y) )

NSArray2(child array)这样的元素:

( (name1,des1,time1), (name1,des2,time2), (name1,des3, time3), (name2,des4,time4), (name2,des5,time5), (name2, des6,time6), (name3,des7,time7), (name3,des8,time8), (name3, des9,time9) )

我想将所有相对NSArray2(child array)元素放入NSArry1(Parent array),如下所示:

( (name1,url-x,logo-x,des1,time1,des2,time2,des3, time3), (name2, url2, logo2, des4, time4, des5, time5, des6, time6),  ... )

我该怎么做?

1 个答案:

答案 0 :(得分:1)

重构您的代码。使用对象而不是嵌套数组可能会更好。

示例:

@interface Object1 : NSObject
@property (nonatomic) NSString *name;
@property (nonatomic) NSArray <Object2 *> *objects2; // if you use Xcode 7
// @property (nonatomic) NSArray *objects2; // if you use earlier Xcode // array of Object2
@end

@implementation Object1
@end

另一堂课:

@interface Object2 : NSObject
@property (nonatomic) NSUInteger des;
@property (nonatomic) NSDate time;
@end

@implementation Object2
@end

通过这种方式,您可以为给定的名称保留尽可能多的des / time对,这也是其他开发人员更易读的,并且肯定会减少错误,崩溃和错误。

稍后在代码中,您只保留一个Object1数组。