

入力側ビューコントローラーで画像と文章を登録して、出力側ビューコントローラーのテーブルビューで一覧表示する写真付きメモ帳のようなアプリをつくっています。

ImageViewに表示された画像を配列に格納し、NSUserDefaultsに画像の配列を保存し、別のビューコントローラーのテーブルビューのセル上のImageViewに配列から取り出した画像を順繰りに表示したいのですが、画像が表示されず、行き詰まっています。

1.画像を配列に格納する  
2.その配列をNSUserDefaultsに保存する  
3.そこから画像を取り出しテーブルビューのセル上に順繰りに表示する  
のどの段階でミスが生じているのか分かりません。

ビルドは問題なくできています。  
よろしくお願いします。

入力側ビューコントローラー

[code]

         //配列を作成
         var imageList:[AnyObject] = [""]
    
         let ud = NSUserDefaults.standardUserDefaults()
    
         //配列をNSUserDefaultsに作成
         ud.setObject(imageList, forKey:"imageList")
         ud.synchronize()
    
         //ImageViewの画像を配列にいれ、配列をNSUserDefaultsに同期
         if var imageList:[AnyObject] = ud.objectForKey("imageList")! as! [AnyObject]  {
    
         if let image = displayImage.image {
            let imageData = UIImageJPEGRepresentation(image, 1);
            imageList.append(imageData!)
            ud.setObject(imageList, forKey: "imageList")
            ud.synchronize()
            }
        }
    
[/code]

出力側ビューコントローラー

[code]

        //画像データの取得
        let imageList = ud.arrayForKey("imageList")
        if let image : [UIImage] = imageList as? [UIImage] {
            cell!.displayImage.image = image[indexPath.row]
        }
    
[/code]


CC BY-SA 3.0
2016-09-19T02:42:18.957
28972
2018-01-31T01:03:04.697
2016-09-19T03:47:01.380
18443
18443
question
swift2
画像を配列に格納し、NSUserDefaultsに配列を保存し、そこから画像を取り出したい


NSKeyedArchiveObjectあたり調べてみたらどうでしょうか NSDataにアーカイブできますよ


CC BY-SA 3.0
2016-09-19T05:49:25.203
28975
2016-09-19T05:49:25.203
13782
28972
answer


自己解決しました。  
出力側ビューコントローラーを下記のコードにすることで順繰りに取り出し、表示することができました。  
nagonsoftwareさん、ucbさんありがとうございました。

[code]

        if let imageData = ud.arrayForKey("imageList")![indexPath.row] as? NSData, image = UIImage(data: imageData) {
    
            cell!.memoImage.image = image
        }
    
[/code]


CC BY-SA 3.0
2016-09-19T05:58:05.390
28977
2016-09-19T05:58:05.390
18443
28972
answer