2016-03-23 36 views
0

Mon -> Pazar haftası günlerini temel verilere eklemem gerekir çünkü verileri çekirdek oluşturucudan ana veriye yerleştiremiyorsunuz Bu uygulama ilk ... böyle dayName ve dayNumber saklanmasıTemel Veriler - İlk Açılışta İlk Verileri Oluşturun, sonra NSTableView'a yükleyin - OSX

let firstLaunchCheck = NSUserDefaults(suiteName: "nonya-buisness ;)") 

    if firstLaunchCheck?.boolForKey("firstLaunch") == false { 
     print("First Launch") 


     let appDel = NSApplication.sharedApplication().delegate as! AppDelegate 
     let context = appDel.managedObjectContext 

     let addDay = NSEntityDescription.insertNewObjectForEntityForName("Weekdays", inManagedObjectContext: context) 

     let dayIndex = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 

     var dayNumber = 0 

     for day in dayIndex { 

      print(day) 

      addDay.setValue(day, forKey: "dayName") 
      addDay.setValue(dayNumber, forKey: "dayNumber") 

      if dayNumber >= 5 { 
       addDay.setValue(true, forKey: "dayHoliday") 
      } else { 
       addDay.setValue(false, forKey: "dayHoliday") 
      } 

      do { 
       try context.save() 
      } catch let error as NSError { 
       print("Could not save \(error), \(error.userInfo)") 
      } 

      dayNumber++ 
     } 

     firstLaunchCheck?.setBool(true, forKey: "firstLaunch") 
     firstLaunchCheck?.synchronize() 
    } else { 
     print("App has already been opened") 
    } 

Im açtığında (örneğin, Çarşamba 2) ve veya gün tatil olup olmadığını wheather da ekleyerek. Varsayılan olarak cumartesi ve Pazar onun seti Bence

Sonraki yük yöntemi im benim verilerini yüklemeye çalışırken vermedi (Bu sonradan kullanıcı tarafından değiştirilebilir), bu ... im bence saplanıyor nerede

var TimetableData = [NSManagedObject]() 

super.viewDidLoad() { 
let appDel = NSApplication.sharedApplication().delegate as! AppDelegate 
    let context = appDel.managedObjectContext 
    let request = NSFetchRequest(entityName: "Weekdays") 
    request.sortDescriptors = [NSSortDescriptor(key: "dayNumber", ascending: false)] 

    do { 
     let results = try context.executeFetchRequest(request) 
     TimetableData = results as! [NSManagedObject] 
     print(TimetableData.count) 
     DayTableView.reloadData() 

    } catch { 
     print("There was a problem retrieving saved data") 
} 
} 

Aslında bir tablo görünümünde verileri temsil eden sorun olduğunu düşünüyorum, ancak yine de kodları.

if tableView == DayTableView { 

     let savedData = TimetableData[row] 

      let cell : NextDayCell = DayTableView.makeViewWithIdentifier("nextDayCell", owner: self) as! NextDayCell 





      if savedData.valueForKey("dayHoliday") as? Bool == true { 
       cell.cellDayString.stringValue = savedData.valueForKey("dayName") as! String + " Weekday" 
      } else { 
       cell.cellDayString.stringValue = savedData.valueForKey("dayName") as! String 
      } 
      cell.dayNumberS.stringValue = "\(day)" 

      day++ 

      return cell 

} 

Bu nedenle, bu kodun tamamı temel verilerden yalnızca bir şey yükleniyor ve bu Pazar günüdür. Yardım edin, P şimdiden teşekkürler

cevap

1

yoktur. Çözüm, her gün için insertNewObjectForEntityForName yapmaktır.

+0

gün isimleri almak için yeni bir yol için teşekkürler, sadece benim forDay değişkeni for döngüsüne taşımak zorunda kaldı ve o, amigo çalıştı. – Eli

0

Burada gerçekten CoreData hakkında soru varsa, o zaman çok yakında başka bir cevap olacak eminim. Gerçek gereklilik haftanın günlerini erişme hakkında ise

, Birini insertNewObjectForEntityForName yapmak ve her gün için bu nesnenin özelliklerini değiştirmek daha basit bir yaklaşım

let dateFormatter = NSDateFormatter() 
// dateFormatter.weekdaySymbols = "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 

for dayIndex in days 
{  
    print(dateFormatter.weekdaySymbols[dayIndex]) 
} 
+0

Bu yaklaşımım, uygulamanızın haftanın hangi gününde döndüğü ve yalnızca gün isminden çok başka bilgilere ihtiyacı olduğu için kullanıyorum. Örneğin, bu eklenmiş olan tablo görünümü tüm günlerin vazgeçilmesidir ve verilere bağlı olarak, görünümün ne göstereceğini değiştirir. Ama – Eli