【问题标题】:Stop repeat storing images into photoalbum停止重复将图像存储到相册中
【发布时间】:2014-06-11 08:39:58
【问题描述】:

我正在将图像存储到相册中。我使用数组来获取图像并存储到相册。但是当我启动应用程序时,它每次都会存储。因此,图像被重复存储。如果相册中存在图像,如何停止存储图像

NSArray *photos = [NSArray arrayWithObjects:
                   [UIImage imageNamed:@"img.jpg"],
                   [UIImage imageNamed:@"img1.jpg"],
                   [UIImage imageNamed:@"img2.jpg"],
                   nil] ;



for(int i=0; i<[photos count]; i++){


      image1=[photos objectAtIndex:i];


    NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
    BOOL isSaved=[[NSUserDefaults standardUserDefaults]boolForKey:@"photosave"];
    if (!isSaved) {
        // Save photo

        [self.library saveImage:image1 toAlbum:@"Art" withCompletionBlock:^(NSError *error) {
            //   arappdelegate.isNotSaved=FALSE;
            if (error!=nil) {
                NSLog(@"Big error: %@", [error description]);
            }
        }];
        [userDefaults setBool:YES forKey:@"photosave"];
        [userDefaults synchronize];
    }

}

【问题讨论】:

    标签: ios uiimage nsarray


    【解决方案1】:
    NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
    BOOL isSaved=[[NSUserDefaults standardUserDefaults]boolForKey:@"photosave"];
    if (!isSaved) {
                [self savePhoto];
        [userDefaults setBool:YES forKey:@"photosave"];
        [userDefaults synchronize];
    }
    

    //

    -(void)savePhoto{
    NSArray *photos = [NSArray arrayWithObjects:
                       [UIImage imageNamed:@"img.jpg"],
                       [UIImage imageNamed:@"img1.jpg"],
                       [UIImage imageNamed:@"img2.jpg"],
                       nil] ;
    for(int i=0; i<[photos count]; i++){
            image1=[photos objectAtIndex:i];
            [self.library saveImage:image1 toAlbum:@"Art" withCompletionBlock:^(NSError *error) {
                //   arappdelegate.isNotSaved=FALSE;
                if (error!=nil) {
                    NSLog(@"Big error: %@", [error description]);
                }
            }];
        }
    

    }

    【讨论】:

    • dubug 检查其运行状况
    【解决方案2】:
        There is way like use any boolean variable in AppDelegate..
    
    
    
         Appdelegate.h
            @property(nonatomic,readwrite)BOOL isNotSaved;
    
            Appdelegate.m
            @synthesize isSaved;
    
            -applicationLaunchMethod
            {
                 isNotSaved=TRUE;
            }
    
            in YourClass.m
            -(void)ViewDidLoad
            {
              appDelegate=[[UIApplication sharedApplication]delegate];
            }
    
            -(void)YourMethod
            {
            NSArray *photos = [NSArray arrayWithObjects:
                                   [UIImage imageNamed:@"img.jpg"],
                                   [UIImage imageNamed:@"img1.jpg"],
                                   [UIImage imageNamed:@"img2.jpg"],
                                   nil] ;
    
           if(appDelegate.isNotSaved)
        {
            for(int i=0; i<[photos count]; i++){
    
                image1=[photos objectAtIndex:i];
    
                [self.library saveImage:image1 toAlbum:@"Art" withCompletionBlock:^(NSError *error)
    
                 {
    
                     if (error!=nil) {
                         NSLog(@"Big error: %@", [error description]);
                     }
                 }];
            }
    
            appDelegate.isNotSaved=FALSE;
        }
    }
    

    【讨论】:

    • 你的代码不工作..当我第一次运行它只保存第一张图像然后再次运行它保存所有图像到相册
    • 你应该使用 NSUserdefaults
    • @Sunny Shah:你的意思是我需要将照片数组存储到 nsuserdefaults 并签入 appdelegate?
    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多