質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1551閲覧

SwiftのNSUserDefaultsについて

rookie

総合スコア26

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2016/06/16 01:20

現在Swiftを勉強している者です。

NSUserDefaultsについて質問です。

View1にボタンを3つ配置して、
View2でView1どのボタンが押されたか保存するという事をしようと思っています。

// View1(各ボタンにタグを付けています。1~3)
let a = Int
let b = 0

fun tap(sender: UIButton){
swich(sender.tag){
case 1:b = 1
case 2:b = 2
case 3:b = 3
defaults:print("タグの反応してない")
}
a.append(b)
let ud = NSUserDefaults.standardUserDefaults()
ud.objectForKey("ButtonTap")
}

// View2
override func viewDidApper(animated: Bool){
super.viewDidApper(animated)

let ud = NSUserDefaults.standardUserDefaults()

if ud.objectForKey("ButtonTap") != nil {
let c = ud.objectForKey("ButtonTap") as! [Int]

print("配列cの中身:(c)")
}
}
このようにView1で押されたボタンのタグを配列に入れて、
View2で何がどのように押されたか見れるようには出来ました。
しかし以下のようにすると、値が上手く保存出来ていないようです。
①各ボタンをそれぞれ1回ずつ押す(a=[1,2,3])→View1に渡す
②再起動後ボタン1を押す(a=[1,2,3,1])→View1に渡す
③更に再起動して保存した中身を調べると・・・(a=[1])

というようにa=[1,2,3,1]と保存したい物が、
2回目の最後に押した1しかデータが残らないです。

この状況を打開する策はないでしょうか。

説明が長く大変読みにくいとは思いますが、
ご返答お待ちしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

保存するときはsetObjectです。

swift

1ud.setObject(a, forKey: "ButtonTap")

あと、配列を取り出すときはarrayForKeyを使って下さい。

質問するときはまともな(ビルドできる)ソースを書いて下さい。
「説明が長く大変読みにくいとは思いますが」などと書く前に、読みやすくなるような工夫をして下さい。(せめてコードは```で囲うとか)

投稿2016/06/16 02:30

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rookie

2016/06/16 04:14

申し訳ありません。 今後は他の方の質問の仕方を見て、 きちんとしたいと思います。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問