0

複数のピッカーがあり、その選択を配列に保存します。アプリの使用範囲内に保持されます。ただし、アプリを終了すると、選択ビューが削除されます。私が欲しかったのは、それを配列に保存した後、それを保存することですNSUserDefaults。そのため、アプリを開いたときに、選択はまだそこにあります。インデックス全体を使用して保存しNSUserDefaults、ピッカーに再度ロードするにはどうすればよいですか。

imagepickerビュー部分の読み込みは次のとおりです。

- (void)loadAssets
{
    count = 0;
    [self.assets removeAllObjects];

    AGIPCAssetsController *blockSelf = self;

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{

        selectedPhotos = [[NSMutableArray alloc] initWithArray:blockSelf.imagePickerController.selection];

        @autoreleasepool {
            [blockSelf.assetsGroup enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
                //ALAssetRepresentation* representation = [result defaultRepresentation];
                // NSUInteger assetindex= [blockSelf.assetsGroup numberOfAssets];

                if (result == nil) 
                {
                    return;
                }



                AGIPCGridItem *gridItem = [[AGIPCGridItem alloc] initWithAsset:result andDelegate:blockSelf];
                if(count < blockSelf.imagePickerController.selection.count)
                {
                    if ( blockSelf.imagePickerController.selection != nil && 
                        [result isEqual:[selectedPhotos objectAtIndex:count]])
                    {

                        gridItem.selected = YES;
                        count++;

                    }
                }
                [blockSelf.assets addObject:gridItem];

            }];
        }

        dispatch_async(dispatch_get_main_queue(), ^{

            [blockSelf reloadData];

        });

    }); 
4

1 に答える 1

0

配列の保存

[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"KeyName"];
[[NSUserDefaults standardUserDefaults] synchronize];

次に、配列をロードします

yourArray = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"KeyName"] mutableCopy];

キー名が同じであることを確認してください

于 2012-08-02T07:59:28.507 に答える