私のアプリは、日付とNSDate()の間の日数を数えます。私がそれをリリースしたとき、ユーザーは1つの日付、タイトル、背景イメージしか保存できませんでした。UserDefaultsが空の場合に1回チェックする方法
複数の日付を保存するオプションを持つUICollectionViewがあり、それぞれの配列に日付、タイトル、イメージ文字列を追加してセルを作成します。
アプリが完全に変更されているため、ユーザーが日付を保存しているかどうかをチェックする方法に苦労しています。もしそうなら、その情報を配列に追加してセルを作成します。
しかし、私はこれが一度だけチェックされたかった - 最初にアプリケーションがアップデートや新規インストールから開かれたとき。
ここで私はそれについて考えていますが、それは方法では動作しません。
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! MyCollectionViewCell
if userDefault.objectForKey("day") == nil {
} else {
// Add the first date created from previous version
let day = userDefault.objectForKey("day") as? String
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMMM yyyy hh:mm a"
let date = dateFormatter.dateFromString(day!)!
let date1 = dateFormatter.stringFromDate(date)
addDateToArray(date1)
// Add the since text
let text = userDefault.objectForKey("sinceText") as? String
addSinceLabelToArray(text!)
//Add the image background
let image = userDefault.objectForKey("khoury") as! String
addThemeToImagesArray(image)
}
上記のコードで何が起こるかは、nilを返します。私は最初のセルを作成することを期待しているので、ユーザーは保存した日付を見ることができます。
機会を取りますNSUserDefaultsではなくストレージにCore Dataを採用するユーザーが最初に新しいバージョンを起動するときは、NSUserDefaults値を確認し、コアデータに移行してからNSUserDefaults値を削除します。 – Paulw11
「うまくいきません」は、あなたの問題についてほとんど何も教えてくれません。あなたは何が起こると思いましたか、代わりに何を見ましたか、それは何が起こっていると思いますか? – Jonah
@Jonah編集を編集しました – Khoury