Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有NSData数组的排序NSArray_Ios_Objective C_Arrays_Nsarray - Fatal编程技术网

Ios 具有NSData数组的排序NSArray

Ios 具有NSData数组的排序NSArray,ios,objective-c,arrays,nsarray,Ios,Objective C,Arrays,Nsarray,我有一个nsarray,其中有图像数据,图像在数组中动态设置,但我想过滤数据,如果有任何nil nsdata,我不希望它在我的nsarray中,我如何对该数组进行排序。这是我的密码 NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg"]; NSData* imageData1 = [[NSUserDefaults standardUserDefaults] objectF

我有一个nsarray,其中有图像数据,图像在数组中动态设置,但我想过滤数据,如果有任何nil nsdata,我不希望它在我的nsarray中,我如何对该数组进行排序。这是我的密码

NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg"];
    NSData* imageData1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg1"];
    NSData* imageData2 = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg2"];
    NSData* imageData3 = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg3"];
    NSData* imageData4 = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg4"];
    NSData* imageData5 = [[NSUserDefaults standardUserDefaults] objectForKey:@"profileImg5"];




    self.pageImages = [NSArray arrayWithObjects:
                                           [UIImage imageWithData:imageData],
                                           [UIImage imageWithData:imageData1],
                                           [UIImage imageWithData:imageData2],
                                           [UIImage imageWithData:imageData3],
                                           [UIImage imageWithData:imageData4],
                                           [UIImage imageWithData:imageData5],nil];

您可以直接检查该索引处的对象是否为nil

NSMutableArray * finalArray = [[NSMutableArray alloc] init];
for (int i = 0; i< pageImages.count; i++) {
    if (pageImages[i]){
        UIImage * temp = [pageImages objectAtIndex:i];
        [finalArray addObject:temp];
    }
}
NSMutableArray*finalArray=[[NSMutableArray alloc]init];
对于(int i=0;i
您可以直接检查该索引处的对象是否为零

NSMutableArray * finalArray = [[NSMutableArray alloc] init];
for (int i = 0; i< pageImages.count; i++) {
    if (pageImages[i]){
        UIImage * temp = [pageImages objectAtIndex:i];
        [finalArray addObject:temp];
    }
}
NSMutableArray*finalArray=[[NSMutableArray alloc]init];
对于(int i=0;i
我会采取完全不同的方法。问题是
arrayWithObjects:
遇到
nil
时停止。例如,如果
imageData1
nil
,则阵列将只有一个图像-
imageData

更好的方法是检查每一个的
nil
。仅添加非零图像

NSArray *keys = @[ @"profileImg", @"profileImg1", @"profileImg2", @"profileImg3", @"profileImg4", @"profileImg5" ];
NSMutableArray *images = [NSMutableArray array];
for (NSString *key in keys) {
    NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    if (imageData) {
        UIImage *image = [UIImage imageWithData:imageData];
        if (image) {
            [images addObject:image];
        }
    }
}

self.pageImages = [images copy];

我会采取完全不同的方法。问题是
arrayWithObjects:
遇到
nil
时停止。例如,如果
imageData1
nil
,则阵列将只有一个图像-
imageData

更好的方法是检查每一个的
nil
。仅添加非零图像

NSArray *keys = @[ @"profileImg", @"profileImg1", @"profileImg2", @"profileImg3", @"profileImg4", @"profileImg5" ];
NSMutableArray *images = [NSMutableArray array];
for (NSString *key in keys) {
    NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    if (imageData) {
        UIImage *image = [UIImage imageWithData:imageData];
        if (image) {
            [images addObject:image];
        }
    }
}

self.pageImages = [images copy];

感谢您的回复,我真的想在同一个self.pageImages中存储已排序的数据我真的想从我的NSArrayies中排除所有包含nill数据或没有图像的图像,这就是我要说的。获取finalArray并将其存储在pageImagesAdd after for循环中-pageImages=finalArray;我这么做了,但还是没有运气:(感谢您的回复,我实际上想在同一个self.pageImages中存储已排序的数据。我实际上想从我的Nsarrayes中排除所有包含nill数据或其中没有图像的图像,这就是我要说的。使用finalArray并将其存储在pageImagesAdd中for loop-pageImages=finalArray;我这样做了,但仍然没有运气:(在
NSArray
中不能有
nil
对象。例如,如果
imageData1
nil
,数组将只包含
imageData
,而不包含其他图像。因此,如果我放置一些其他虚拟pic而不是nil,那么它会工作吗?我的意思是,如果is image上的语句是虚拟的,那么不添加is i,我该如何应用n nsaray!在
NSArray
中不可能有
nil
对象。例如,如果
imageData1
nil
,数组将只包含
imageData
,而不包含其他图像。因此,如果我放置一些其他虚拟pic而不是nil,那么它会工作吗?我的意思是,如果is image上的语句是虚拟的,那么我该如何应用add在nsaray中!三分之一的此应用程序崩溃并输出“***由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'-[\uu NSCFData\u isDecompressing]:未识别的选择器发送到实例0x1567164a0'”三分之一的此应用程序崩溃并输出“***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:”-[\uu NSCFData\u isDecompressing]:未识别的选择器发送到实例0x1567164a0”