Selaa lähdekoodia

Upgraded to Swift 4. Small fixes in the blog and activities sections

Iñigo Valentin 8 vuotta sitten
vanhempi
sitoutus
3d6f31a7dd
84 muutettua tiedostoa jossa 2016 lisäystä ja 99 poistoa
  1. 640 5
      app.xcodeproj/project.pbxproj
  2. 6 1
      app/ActivitiesView.swift
  3. 1 1
      app/AlbumViewController.swift
  4. 27 26
      app/Base.lproj/Main.storyboard
  5. 1 1
      app/EventController.swift
  6. 1 1
      app/FutureActivityViewController.swift
  7. 1 1
      app/GalleryView.swift
  8. 6 6
      app/HomeView.swift
  9. 2 2
      app/LablancaView.swift
  10. 1 1
      app/LocationView.swift
  11. 16 0
      app/NSManagedObjects/app/Base.lproj/Activity+CoreDataClass.swift
  12. 41 0
      app/NSManagedObjects/app/Base.lproj/Activity+CoreDataProperties.swift
  13. 16 0
      app/NSManagedObjects/app/Base.lproj/Activity_comment+CoreDataClass.swift
  14. 27 0
      app/NSManagedObjects/app/Base.lproj/Activity_comment+CoreDataProperties.swift
  15. 16 0
      app/NSManagedObjects/app/Base.lproj/Activity_image+CoreDataClass.swift
  16. 25 0
      app/NSManagedObjects/app/Base.lproj/Activity_image+CoreDataProperties.swift
  17. 16 0
      app/NSManagedObjects/app/Base.lproj/Activity_itinerary+CoreDataClass.swift
  18. 33 0
      app/NSManagedObjects/app/Base.lproj/Activity_itinerary+CoreDataProperties.swift
  19. 16 0
      app/NSManagedObjects/app/Base.lproj/Activity_tag+CoreDataClass.swift
  20. 23 0
      app/NSManagedObjects/app/Base.lproj/Activity_tag+CoreDataProperties.swift
  21. 16 0
      app/NSManagedObjects/app/Base.lproj/Album+CoreDataClass.swift
  22. 31 0
      app/NSManagedObjects/app/Base.lproj/Album+CoreDataProperties.swift
  23. 16 0
      app/NSManagedObjects/app/Base.lproj/Festival+CoreDataClass.swift
  24. 30 0
      app/NSManagedObjects/app/Base.lproj/Festival+CoreDataProperties.swift
  25. 16 0
      app/NSManagedObjects/app/Base.lproj/Festival_day+CoreDataClass.swift
  26. 29 0
      app/NSManagedObjects/app/Base.lproj/Festival_day+CoreDataProperties.swift
  27. 16 0
      app/NSManagedObjects/app/Base.lproj/Festival_event+CoreDataClass.swift
  28. 35 0
      app/NSManagedObjects/app/Base.lproj/Festival_event+CoreDataProperties.swift
  29. 16 0
      app/NSManagedObjects/app/Base.lproj/Festival_event_gm+CoreDataClass.swift
  30. 35 0
      app/NSManagedObjects/app/Base.lproj/Festival_event_gm+CoreDataProperties.swift
  31. 16 0
      app/NSManagedObjects/app/Base.lproj/Festival_event_image+CoreDataClass.swift
  32. 25 0
      app/NSManagedObjects/app/Base.lproj/Festival_event_image+CoreDataProperties.swift
  33. 16 0
      app/NSManagedObjects/app/Base.lproj/Festival_offer+CoreDataClass.swift
  34. 31 0
      app/NSManagedObjects/app/Base.lproj/Festival_offer+CoreDataProperties.swift
  35. 16 0
      app/NSManagedObjects/app/Base.lproj/Location+CoreDataClass.swift
  36. 24 0
      app/NSManagedObjects/app/Base.lproj/Location+CoreDataProperties.swift
  37. 16 0
      app/NSManagedObjects/app/Base.lproj/Notification+CoreDataClass.swift
  38. 33 0
      app/NSManagedObjects/app/Base.lproj/Notification+CoreDataProperties.swift
  39. 16 0
      app/NSManagedObjects/app/Base.lproj/People+CoreDataClass.swift
  40. 26 0
      app/NSManagedObjects/app/Base.lproj/People+CoreDataProperties.swift
  41. 16 0
      app/NSManagedObjects/app/Base.lproj/Photo+CoreDataClass.swift
  42. 37 0
      app/NSManagedObjects/app/Base.lproj/Photo+CoreDataProperties.swift
  43. 16 0
      app/NSManagedObjects/app/Base.lproj/Photo_album+CoreDataClass.swift
  44. 23 0
      app/NSManagedObjects/app/Base.lproj/Photo_album+CoreDataProperties.swift
  45. 16 0
      app/NSManagedObjects/app/Base.lproj/Photo_comment+CoreDataClass.swift
  46. 27 0
      app/NSManagedObjects/app/Base.lproj/Photo_comment+CoreDataProperties.swift
  47. 16 0
      app/NSManagedObjects/app/Base.lproj/Place+CoreDataClass.swift
  48. 31 0
      app/NSManagedObjects/app/Base.lproj/Place+CoreDataProperties.swift
  49. 16 0
      app/NSManagedObjects/app/Base.lproj/Post+CoreDataClass.swift
  50. 32 0
      app/NSManagedObjects/app/Base.lproj/Post+CoreDataProperties.swift
  51. 16 0
      app/NSManagedObjects/app/Base.lproj/Post_comment+CoreDataClass.swift
  52. 27 0
      app/NSManagedObjects/app/Base.lproj/Post_comment+CoreDataProperties.swift
  53. 16 0
      app/NSManagedObjects/app/Base.lproj/Post_image+CoreDataClass.swift
  54. 25 0
      app/NSManagedObjects/app/Base.lproj/Post_image+CoreDataProperties.swift
  55. 16 0
      app/NSManagedObjects/app/Base.lproj/Post_tag+CoreDataClass.swift
  56. 23 0
      app/NSManagedObjects/app/Base.lproj/Post_tag+CoreDataProperties.swift
  57. 16 0
      app/NSManagedObjects/app/Base.lproj/Route+CoreDataClass.swift
  58. 24 0
      app/NSManagedObjects/app/Base.lproj/Route+CoreDataProperties.swift
  59. 16 0
      app/NSManagedObjects/app/Base.lproj/Route_point+CoreDataClass.swift
  60. 30 0
      app/NSManagedObjects/app/Base.lproj/Route_point+CoreDataProperties.swift
  61. 16 0
      app/NSManagedObjects/app/Base.lproj/Sponsor+CoreDataClass.swift
  62. 36 0
      app/NSManagedObjects/app/Base.lproj/Sponsor+CoreDataProperties.swift
  63. 16 0
      app/NSManagedObjects/app/Base.lproj/Version+CoreDataClass.swift
  64. 23 0
      app/NSManagedObjects/app/Base.lproj/Version+CoreDataProperties.swift
  65. 2 2
      app/PastActivityViewController.swift
  66. 9 6
      app/PhotoViewController.swift
  67. 57 2
      app/PostViewController.swift
  68. 2 2
      app/RowAlbum.swift
  69. 1 1
      app/RowBlog.swift
  70. 1 1
      app/RowGallery.swift
  71. 1 1
      app/RowHomeBlog.swift
  72. 1 1
      app/RowHomeFutureActivities.swift
  73. 4 4
      app/RowHomeGallery.swift
  74. 1 1
      app/RowHomePastActivities.swift
  75. 7 7
      app/RowHomeSocial.swift
  76. 3 3
      app/RowItinerary.swift
  77. 1 1
      app/RowPastActivity.swift
  78. 1 1
      app/RowSchedule.swift
  79. 3 3
      app/ScheduleViewController.swift
  80. 2 2
      app/String.swift
  81. 7 7
      app/Sync.swift
  82. 2 2
      app/SyncController.swift
  83. 1 1
      app/ViewController.swift
  84. 6 6
      app/app.xcdatamodeld/app2.xcdatamodel/contents

+ 640 - 5
app.xcodeproj/project.pbxproj

@@ -178,6 +178,60 @@
 		93EB2F0B1EBF5AEB00F64186 /* RowSchedule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RowSchedule.swift; sourceTree = "<group>"; };
 		93EB2F0D1EBF5BF500F64186 /* RowSchedule.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RowSchedule.xib; sourceTree = "<group>"; };
 		93EE9ECA1EE9B87100288F6E /* PastActivityViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PastActivityViewController.swift; sourceTree = "<group>"; };
+		FC63DC6420DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_comment+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC6620DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_comment+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC6820DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Photo+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC6A20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Photo+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC6C20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_event_image+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC6E20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_event_image+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC7020DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC7220DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC7420DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_itinerary+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC7620DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_itinerary+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC7820DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_offer+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC7A20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_offer+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC7C20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Route_point+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC7E20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Route_point+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC8020DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_event+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC8220DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_event+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC8420DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC8620DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC8820DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Version+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC8A20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Version+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC8C20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_event_gm+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC8E20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_event_gm+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC9020DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Place+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC9220DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Place+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC9420DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Location+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC9620DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Location+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC9820DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC9A20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DC9C20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_image+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DC9E20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_image+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCA020DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post_tag+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCA220DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post_tag+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCA420DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Route+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCA620DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Route+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCA820DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post_image+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCAA20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post_image+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCAC20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Album+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCAE20DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Album+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCB020DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Sponsor+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCB220DC16B300C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Sponsor+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCB420DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_tag+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCB620DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Activity_tag+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCB820DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_day+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCBA20DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Festival_day+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCBC20DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post_comment+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCBE20DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Post_comment+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCC020DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Photo_comment+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCC220DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Photo_comment+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCC420DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Photo_album+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCC620DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Photo_album+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCC820DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Notification+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCCA20DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/Notification+CoreDataProperties.swift"; sourceTree = "<group>"; };
+		FC63DCCC20DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/People+CoreDataClass.swift"; sourceTree = "<group>"; };
+		FC63DCCE20DC16B400C9A2E1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Base; path = "app/Base.lproj/People+CoreDataProperties.swift"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -225,6 +279,7 @@
 		93B84B981D9C31AB006C0F67 /* app */ = {
 			isa = PBXGroup;
 			children = (
+				FC63DCCF20DC16F200C9A2E1 /* NSManagedObjects */,
 				93348A601EF4273F0093503A /* EventController.swift */,
 				93B84BA81D9C31AB006C0F67 /* Info.plist */,
 				93B84BA31D9C31AB006C0F67 /* Assets.xcassets */,
@@ -234,7 +289,6 @@
 				93B84B991D9C31AB006C0F67 /* AppDelegate.swift */,
 				93B84B9D1D9C31AB006C0F67 /* Main.storyboard */,
 				93B84B9B1D9C31AB006C0F67 /* ViewController.swift */,
-				93BEB6D11E7E878300C68DE5 /* PostViewController.swift */,
 				93B408021D9ED44C000FBC99 /* MenuCollectionViewCell.swift */,
 				93D9EA5F1DE271E700089002 /* Section.xib */,
 				93D9EA631DE273FD00089002 /* Section.swift */,
@@ -254,6 +308,7 @@
 				93075C6B1E59CB6B00396389 /* BlogView.swift */,
 				93075C711E59D06900396389 /* RowBlog.xib */,
 				93075C6F1E59D04A00396389 /* RowBlog.swift */,
+				93BEB6D11E7E878300C68DE5 /* PostViewController.swift */,
 				93D9EA751DE3ACBB00089002 /* Sync.swift */,
 				9357460F1EE20B99005DED61 /* FetchLocation.swift */,
 				931AA5881E1AFF8C003A2290 /* String.swift */,
@@ -320,6 +375,67 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
+		FC63DCCF20DC16F200C9A2E1 /* NSManagedObjects */ = {
+			isa = PBXGroup;
+			children = (
+				FC63DC6320DC16B300C9A2E1 /* Activity_comment+CoreDataClass.swift */,
+				FC63DC6520DC16B300C9A2E1 /* Activity_comment+CoreDataProperties.swift */,
+				FC63DC6720DC16B300C9A2E1 /* Photo+CoreDataClass.swift */,
+				FC63DC6920DC16B300C9A2E1 /* Photo+CoreDataProperties.swift */,
+				FC63DC6B20DC16B300C9A2E1 /* Festival_event_image+CoreDataClass.swift */,
+				FC63DC6D20DC16B300C9A2E1 /* Festival_event_image+CoreDataProperties.swift */,
+				FC63DC6F20DC16B300C9A2E1 /* Post+CoreDataClass.swift */,
+				FC63DC7120DC16B300C9A2E1 /* Post+CoreDataProperties.swift */,
+				FC63DC7320DC16B300C9A2E1 /* Activity_itinerary+CoreDataClass.swift */,
+				FC63DC7520DC16B300C9A2E1 /* Activity_itinerary+CoreDataProperties.swift */,
+				FC63DC7720DC16B300C9A2E1 /* Festival_offer+CoreDataClass.swift */,
+				FC63DC7920DC16B300C9A2E1 /* Festival_offer+CoreDataProperties.swift */,
+				FC63DC7B20DC16B300C9A2E1 /* Route_point+CoreDataClass.swift */,
+				FC63DC7D20DC16B300C9A2E1 /* Route_point+CoreDataProperties.swift */,
+				FC63DC7F20DC16B300C9A2E1 /* Festival_event+CoreDataClass.swift */,
+				FC63DC8120DC16B300C9A2E1 /* Festival_event+CoreDataProperties.swift */,
+				FC63DC8320DC16B300C9A2E1 /* Activity+CoreDataClass.swift */,
+				FC63DC8520DC16B300C9A2E1 /* Activity+CoreDataProperties.swift */,
+				FC63DC8720DC16B300C9A2E1 /* Version+CoreDataClass.swift */,
+				FC63DC8920DC16B300C9A2E1 /* Version+CoreDataProperties.swift */,
+				FC63DC8B20DC16B300C9A2E1 /* Festival_event_gm+CoreDataClass.swift */,
+				FC63DC8D20DC16B300C9A2E1 /* Festival_event_gm+CoreDataProperties.swift */,
+				FC63DC8F20DC16B300C9A2E1 /* Place+CoreDataClass.swift */,
+				FC63DC9120DC16B300C9A2E1 /* Place+CoreDataProperties.swift */,
+				FC63DC9320DC16B300C9A2E1 /* Location+CoreDataClass.swift */,
+				FC63DC9520DC16B300C9A2E1 /* Location+CoreDataProperties.swift */,
+				FC63DC9720DC16B300C9A2E1 /* Festival+CoreDataClass.swift */,
+				FC63DC9920DC16B300C9A2E1 /* Festival+CoreDataProperties.swift */,
+				FC63DC9B20DC16B300C9A2E1 /* Activity_image+CoreDataClass.swift */,
+				FC63DC9D20DC16B300C9A2E1 /* Activity_image+CoreDataProperties.swift */,
+				FC63DC9F20DC16B300C9A2E1 /* Post_tag+CoreDataClass.swift */,
+				FC63DCA120DC16B300C9A2E1 /* Post_tag+CoreDataProperties.swift */,
+				FC63DCA320DC16B300C9A2E1 /* Route+CoreDataClass.swift */,
+				FC63DCA520DC16B300C9A2E1 /* Route+CoreDataProperties.swift */,
+				FC63DCA720DC16B300C9A2E1 /* Post_image+CoreDataClass.swift */,
+				FC63DCA920DC16B300C9A2E1 /* Post_image+CoreDataProperties.swift */,
+				FC63DCAB20DC16B300C9A2E1 /* Album+CoreDataClass.swift */,
+				FC63DCAD20DC16B300C9A2E1 /* Album+CoreDataProperties.swift */,
+				FC63DCAF20DC16B300C9A2E1 /* Sponsor+CoreDataClass.swift */,
+				FC63DCB120DC16B300C9A2E1 /* Sponsor+CoreDataProperties.swift */,
+				FC63DCB320DC16B300C9A2E1 /* Activity_tag+CoreDataClass.swift */,
+				FC63DCB520DC16B400C9A2E1 /* Activity_tag+CoreDataProperties.swift */,
+				FC63DCB720DC16B400C9A2E1 /* Festival_day+CoreDataClass.swift */,
+				FC63DCB920DC16B400C9A2E1 /* Festival_day+CoreDataProperties.swift */,
+				FC63DCBB20DC16B400C9A2E1 /* Post_comment+CoreDataClass.swift */,
+				FC63DCBD20DC16B400C9A2E1 /* Post_comment+CoreDataProperties.swift */,
+				FC63DCBF20DC16B400C9A2E1 /* Photo_comment+CoreDataClass.swift */,
+				FC63DCC120DC16B400C9A2E1 /* Photo_comment+CoreDataProperties.swift */,
+				FC63DCC320DC16B400C9A2E1 /* Photo_album+CoreDataClass.swift */,
+				FC63DCC520DC16B400C9A2E1 /* Photo_album+CoreDataProperties.swift */,
+				FC63DCC720DC16B400C9A2E1 /* Notification+CoreDataClass.swift */,
+				FC63DCC920DC16B400C9A2E1 /* Notification+CoreDataProperties.swift */,
+				FC63DCCB20DC16B400C9A2E1 /* People+CoreDataClass.swift */,
+				FC63DCCD20DC16B400C9A2E1 /* People+CoreDataProperties.swift */,
+			);
+			path = NSManagedObjects;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -353,7 +469,7 @@
 					93B84B951D9C31AB006C0F67 = {
 						CreatedOnToolsVersion = 8.0;
 						DevelopmentTeam = 9F9ER4X7TG;
-						LastSwiftMigration = 0830;
+						LastSwiftMigration = 0920;
 						ProvisioningStyle = Automatic;
 						SystemCapabilities = {
 							com.apple.BackgroundModes = {
@@ -486,6 +602,438 @@
 			name = LaunchScreen.storyboard;
 			sourceTree = "<group>";
 		};
+		FC63DC6320DC16B300C9A2E1 /* Activity_comment+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC6420DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity_comment+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC6520DC16B300C9A2E1 /* Activity_comment+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC6620DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity_comment+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC6720DC16B300C9A2E1 /* Photo+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC6820DC16B300C9A2E1 /* Base */,
+			);
+			name = "Photo+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC6920DC16B300C9A2E1 /* Photo+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC6A20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Photo+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC6B20DC16B300C9A2E1 /* Festival_event_image+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC6C20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_event_image+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC6D20DC16B300C9A2E1 /* Festival_event_image+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC6E20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_event_image+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC6F20DC16B300C9A2E1 /* Post+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7020DC16B300C9A2E1 /* Base */,
+			);
+			name = "Post+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7120DC16B300C9A2E1 /* Post+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7220DC16B300C9A2E1 /* Base */,
+			);
+			name = "Post+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7320DC16B300C9A2E1 /* Activity_itinerary+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7420DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity_itinerary+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7520DC16B300C9A2E1 /* Activity_itinerary+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7620DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity_itinerary+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7720DC16B300C9A2E1 /* Festival_offer+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7820DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_offer+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7920DC16B300C9A2E1 /* Festival_offer+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7A20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_offer+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7B20DC16B300C9A2E1 /* Route_point+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7C20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Route_point+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7D20DC16B300C9A2E1 /* Route_point+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC7E20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Route_point+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC7F20DC16B300C9A2E1 /* Festival_event+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8020DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_event+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8120DC16B300C9A2E1 /* Festival_event+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8220DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_event+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8320DC16B300C9A2E1 /* Activity+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8420DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8520DC16B300C9A2E1 /* Activity+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8620DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8720DC16B300C9A2E1 /* Version+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8820DC16B300C9A2E1 /* Base */,
+			);
+			name = "Version+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8920DC16B300C9A2E1 /* Version+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8A20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Version+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8B20DC16B300C9A2E1 /* Festival_event_gm+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8C20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_event_gm+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8D20DC16B300C9A2E1 /* Festival_event_gm+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC8E20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival_event_gm+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC8F20DC16B300C9A2E1 /* Place+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9020DC16B300C9A2E1 /* Base */,
+			);
+			name = "Place+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9120DC16B300C9A2E1 /* Place+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9220DC16B300C9A2E1 /* Base */,
+			);
+			name = "Place+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9320DC16B300C9A2E1 /* Location+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9420DC16B300C9A2E1 /* Base */,
+			);
+			name = "Location+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9520DC16B300C9A2E1 /* Location+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9620DC16B300C9A2E1 /* Base */,
+			);
+			name = "Location+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9720DC16B300C9A2E1 /* Festival+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9820DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9920DC16B300C9A2E1 /* Festival+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9A20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Festival+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9B20DC16B300C9A2E1 /* Activity_image+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9C20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity_image+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9D20DC16B300C9A2E1 /* Activity_image+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DC9E20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Activity_image+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DC9F20DC16B300C9A2E1 /* Post_tag+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCA020DC16B300C9A2E1 /* Base */,
+			);
+			name = "Post_tag+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCA120DC16B300C9A2E1 /* Post_tag+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCA220DC16B300C9A2E1 /* Base */,
+			);
+			name = "Post_tag+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCA320DC16B300C9A2E1 /* Route+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCA420DC16B300C9A2E1 /* Base */,
+			);
+			name = "Route+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCA520DC16B300C9A2E1 /* Route+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCA620DC16B300C9A2E1 /* Base */,
+			);
+			name = "Route+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCA720DC16B300C9A2E1 /* Post_image+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCA820DC16B300C9A2E1 /* Base */,
+			);
+			name = "Post_image+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCA920DC16B300C9A2E1 /* Post_image+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCAA20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Post_image+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCAB20DC16B300C9A2E1 /* Album+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCAC20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Album+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCAD20DC16B300C9A2E1 /* Album+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCAE20DC16B300C9A2E1 /* Base */,
+			);
+			name = "Album+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCAF20DC16B300C9A2E1 /* Sponsor+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCB020DC16B300C9A2E1 /* Base */,
+			);
+			name = "Sponsor+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCB120DC16B300C9A2E1 /* Sponsor+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCB220DC16B300C9A2E1 /* Base */,
+			);
+			name = "Sponsor+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCB320DC16B300C9A2E1 /* Activity_tag+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCB420DC16B400C9A2E1 /* Base */,
+			);
+			name = "Activity_tag+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCB520DC16B400C9A2E1 /* Activity_tag+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCB620DC16B400C9A2E1 /* Base */,
+			);
+			name = "Activity_tag+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCB720DC16B400C9A2E1 /* Festival_day+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCB820DC16B400C9A2E1 /* Base */,
+			);
+			name = "Festival_day+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCB920DC16B400C9A2E1 /* Festival_day+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCBA20DC16B400C9A2E1 /* Base */,
+			);
+			name = "Festival_day+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCBB20DC16B400C9A2E1 /* Post_comment+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCBC20DC16B400C9A2E1 /* Base */,
+			);
+			name = "Post_comment+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCBD20DC16B400C9A2E1 /* Post_comment+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCBE20DC16B400C9A2E1 /* Base */,
+			);
+			name = "Post_comment+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCBF20DC16B400C9A2E1 /* Photo_comment+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCC020DC16B400C9A2E1 /* Base */,
+			);
+			name = "Photo_comment+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCC120DC16B400C9A2E1 /* Photo_comment+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCC220DC16B400C9A2E1 /* Base */,
+			);
+			name = "Photo_comment+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCC320DC16B400C9A2E1 /* Photo_album+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCC420DC16B400C9A2E1 /* Base */,
+			);
+			name = "Photo_album+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCC520DC16B400C9A2E1 /* Photo_album+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCC620DC16B400C9A2E1 /* Base */,
+			);
+			name = "Photo_album+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCC720DC16B400C9A2E1 /* Notification+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCC820DC16B400C9A2E1 /* Base */,
+			);
+			name = "Notification+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCC920DC16B400C9A2E1 /* Notification+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCCA20DC16B400C9A2E1 /* Base */,
+			);
+			name = "Notification+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCCB20DC16B400C9A2E1 /* People+CoreDataClass.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCCC20DC16B400C9A2E1 /* Base */,
+			);
+			name = "People+CoreDataClass.swift";
+			sourceTree = "<group>";
+		};
+		FC63DCCD20DC16B400C9A2E1 /* People+CoreDataProperties.swift */ = {
+			isa = PBXVariantGroup;
+			children = (
+				FC63DCCE20DC16B400C9A2E1 /* Base */,
+			);
+			name = "People+CoreDataProperties.swift";
+			sourceTree = "<group>";
+		};
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
@@ -493,27 +1041,47 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				ASSETCATALOG_NOTICES = NO;
+				ASSETCATALOG_WARNINGS = NO;
 				CLANG_ANALYZER_NONNULL = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_ASSIGN_ENUM = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_CXX0X_EXTENSIONS = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_SUSPICIOUS_MOVES = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = NO;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = NO;
 				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_INCREMENTAL_DISTILL = NO;
+				ENABLE_NS_ASSERTIONS = YES;
+				ENABLE_ONLY_ACTIVE_RESOURCES = YES;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				ENABLE_TESTABILITY = YES;
 				GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -524,11 +1092,32 @@
 					"DEBUG=1",
 					"$(inherited)",
 				);
+				GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+				GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				"GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64]" = YES_ERROR;
+				GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
+				GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+				GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
+				GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
+				GCC_WARN_MISSING_PARENTHESES = NO;
+				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
+				GCC_WARN_SHADOW = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_STRICT_SELECTOR_MATCH = YES;
+				GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
 				GCC_WARN_UNDECLARED_SELECTOR = YES;
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNKNOWN_PRAGMAS = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_LABEL = YES;
+				GCC_WARN_UNUSED_PARAMETER = YES;
+				GCC_WARN_UNUSED_VALUE = NO;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				MTL_ENABLE_DEBUG_INFO = YES;
@@ -537,6 +1126,7 @@
 				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
 			};
 			name = Debug;
 		};
@@ -544,39 +1134,82 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				ASSETCATALOG_NOTICES = NO;
+				ASSETCATALOG_WARNINGS = NO;
 				CLANG_ANALYZER_NONNULL = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_ASSIGN_ENUM = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_CXX0X_EXTENSIONS = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 				CLANG_WARN_SUSPICIOUS_MOVES = YES;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = NO;
 				CLANG_WARN_UNREACHABLE_CODE = YES;
 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				COPY_PHASE_STRIP = NO;
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_INCREMENTAL_DISTILL = NO;
+				ENABLE_NS_ASSERTIONS = YES;
+				ENABLE_ONLY_ACTIVE_RESOURCES = YES;
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+				GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				"GCC_WARN_64_TO_32_BIT_CONVERSION[arch=*64]" = YES;
+				GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
+				GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+				GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
+				GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
+				GCC_WARN_MISSING_PARENTHESES = NO;
+				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
+				GCC_WARN_SHADOW = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_STRICT_SELECTOR_MATCH = YES;
+				GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
 				GCC_WARN_UNDECLARED_SELECTOR = YES;
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNKNOWN_PRAGMAS = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_LABEL = YES;
+				GCC_WARN_UNUSED_PARAMETER = YES;
+				GCC_WARN_UNUSED_VALUE = NO;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
+				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
 				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -603,7 +1236,8 @@
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "app/app-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 			};
 			name = Debug;
 		};
@@ -625,7 +1259,8 @@
 				PRODUCT_BUNDLE_IDENTIFIER = com.margolariak.iosapp;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_OBJC_BRIDGING_HEADER = "app/app-Bridging-Header.h";
-				SWIFT_VERSION = 3.0;
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
 			};
 			name = Release;
 		};

+ 6 - 1
app/ActivitiesView.swift

@@ -115,7 +115,12 @@ class ActivitiesView: UIView {
 					row = RowFutureActivity.init(s: "rowFutureActivity\(count)", i: count)
 					id = r.value(forKey: "id")! as! Int
 					title = r.value(forKey: "title_\(lang!)")! as! String
-					text = r.value(forKey: "text_\(lang!)")! as! String
+                    if ((r.value(forKey: "after_\(lang)") != nil) && ((r.value(forKey: "after_\(lang)")! as! String).length != 0)){
+                        text = r.value(forKey: "after_\(lang)")! as! String
+                    }
+                    else{
+                        text = r.value(forKey: "text_\(lang)")! as! String
+                    }
 					city = r.value(forKey: "city")! as! String
 					price = r.value(forKey: "price")! as! Int
 					date = r.value(forKey: "date")! as! NSDate

+ 1 - 1
app/AlbumViewController.swift

@@ -89,7 +89,7 @@ class AlbumViewController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Returns to the main view controller.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	

+ 27 - 26
app/Base.lproj/Main.storyboard

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="3o1-ab-AT4">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="3o1-ab-AT4">
     <device id="retina4_7" orientation="portrait">
         <adaptation id="fullscreen"/>
     </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
         <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
         <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
         <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
@@ -17,7 +17,7 @@
             <objects>
                 <navigationController title="Gasteizko Margolariak" id="cgF-cq-ysf" sceneMemberID="viewController">
                     <navigationBar key="navigationBar" contentMode="scaleToFill" misplaced="YES" id="lgI-h9-O0s">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
+                        <rect key="frame" x="0.0" y="20" width="375" height="44"/>
                         <autoresizingMask key="autoresizingMask"/>
                         <color key="backgroundColor" red="0.4079896717" green="1" blue="0.34807942549999998" alpha="1" colorSpace="calibratedRGB"/>
                     </navigationBar>
@@ -331,14 +331,14 @@
                                 <rect key="frame" x="0.0" y="20" width="375" height="30"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="029-px-JqL">
-                                        <rect key="frame" x="0.0" y="0.0" width="56.5" height="30"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="57" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                         <state key="normal" title="&lt;">
                                             <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         </state>
                                     </button>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gasteizko Margolariak" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BIE-D1-hCZ">
-                                        <rect key="frame" x="56.5" y="0.0" width="262.5" height="30"/>
+                                        <rect key="frame" x="57" y="0.0" width="262.5" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         <nil key="highlightedColor"/>
@@ -388,20 +388,20 @@
                                                                         </constraints>
                                                                     </imageView>
                                                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2i2-HF-HyI" userLabel="Text">
-                                                                        <rect key="frame" x="17" y="91" width="305.5" height="826"/>
+                                                                        <rect key="frame" x="17.5" y="91" width="305.5" height="826"/>
                                                                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                                         <nil key="textColor"/>
                                                                         <nil key="highlightedColor"/>
                                                                     </label>
                                                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tAc-xa-mg2" userLabel="Separator">
-                                                                        <rect key="frame" x="17" y="917" width="305.5" height="2"/>
+                                                                        <rect key="frame" x="17.5" y="917" width="305.5" height="2"/>
                                                                         <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
                                                                         <constraints>
                                                                             <constraint firstAttribute="height" constant="2" id="TTW-wU-fHT"/>
                                                                         </constraints>
                                                                     </view>
                                                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="254" text="Date" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pX4-mq-dj0" userLabel="Date">
-                                                                        <rect key="frame" x="17" y="929" width="305.5" height="20"/>
+                                                                        <rect key="frame" x="17.5" y="929" width="305.5" height="20"/>
                                                                         <constraints>
                                                                             <constraint firstAttribute="height" constant="20" id="Qos-eG-WmY"/>
                                                                         </constraints>
@@ -517,6 +517,7 @@
                     <connections>
                         <outlet property="barButton" destination="029-px-JqL" id="48Y-ht-xLk"/>
                         <outlet property="barTitle" destination="BIE-D1-hCZ" id="Fwf-72-Zfe"/>
+                        <outlet property="postDate" destination="pX4-mq-dj0" id="23L-zW-QJ8"/>
                         <outlet property="postImage" destination="u3M-mi-Tyn" id="usY-gh-LBn"/>
                         <outlet property="postText" destination="2i2-HF-HyI" id="Mmz-c2-N6D"/>
                         <outlet property="postTitle" destination="tRk-Ti-VOu" id="7kU-Dg-MLX"/>
@@ -542,14 +543,14 @@
                                 <rect key="frame" x="0.0" y="20" width="375" height="30"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Thj-0t-rxK">
-                                        <rect key="frame" x="0.0" y="0.0" width="56.5" height="30"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="57" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                         <state key="normal" title="&lt;">
                                             <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         </state>
                                     </button>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gasteizko Margolariak" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LLe-aQ-Sbj">
-                                        <rect key="frame" x="56.5" y="0.0" width="262.5" height="30"/>
+                                        <rect key="frame" x="57" y="0.0" width="262.5" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         <nil key="highlightedColor"/>
@@ -720,14 +721,14 @@
                                 <rect key="frame" x="0.0" y="20" width="375" height="30"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cV9-gT-2OC">
-                                        <rect key="frame" x="0.0" y="0.0" width="56.5" height="30"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="57" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                         <state key="normal" title="&lt;">
                                             <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         </state>
                                     </button>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gasteizko Margolariak" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RJE-Hu-oDM">
-                                        <rect key="frame" x="56.5" y="0.0" width="262.5" height="30"/>
+                                        <rect key="frame" x="57" y="0.0" width="262.5" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         <nil key="highlightedColor"/>
@@ -992,7 +993,7 @@
                                 </constraints>
                             </imageView>
                             <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sincronizando..." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="up0-1V-tTd">
-                                <rect key="frame" x="0.0" y="475" width="375" height="30"/>
+                                <rect key="frame" x="-0.5" y="475" width="375.5" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="mIj-oN-tq7"/>
                                 </constraints>
@@ -1035,7 +1036,7 @@
                         <outlet property="lb" destination="pgU-dx-MvQ" id="ATL-SS-rxd"/>
                         <outlet property="lbTitle" destination="up0-1V-tTd" id="l37-DZ-jpR"/>
                         <outlet property="pb" destination="VkR-DT-y3S" id="NMd-7R-Rlc"/>
-                        <segue destination="BYZ-38-t0r" kind="showDetail" identifier="SegueInit" action="showViewController:sender:" id="kSh-cP-och"/>
+                        <segue destination="BYZ-38-t0r" kind="showDetail" identifier="SegueInit" id="kSh-cP-och"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="fRm-1Y-Xmm" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -1057,14 +1058,14 @@
                                 <rect key="frame" x="0.0" y="20" width="375" height="30"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Loj-Ff-gNj">
-                                        <rect key="frame" x="0.0" y="0.0" width="56.5" height="30"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="57" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                         <state key="normal" title="&lt;">
                                             <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         </state>
                                     </button>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gasteizko Margolariak" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xf1-tl-98b">
-                                        <rect key="frame" x="56.5" y="0.0" width="262.5" height="30"/>
+                                        <rect key="frame" x="57" y="0.0" width="262.5" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         <nil key="highlightedColor"/>
@@ -1114,20 +1115,20 @@
                                                                         </constraints>
                                                                     </imageView>
                                                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Usd-Rm-Tq2" userLabel="Text">
-                                                                        <rect key="frame" x="17" y="91" width="305.5" height="826"/>
+                                                                        <rect key="frame" x="17.5" y="91" width="305.5" height="826"/>
                                                                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                                         <nil key="textColor"/>
                                                                         <nil key="highlightedColor"/>
                                                                     </label>
                                                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LmH-0o-Hku" userLabel="Separator">
-                                                                        <rect key="frame" x="17" y="917" width="305.5" height="2"/>
+                                                                        <rect key="frame" x="17.5" y="917" width="305.5" height="2"/>
                                                                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                                                         <constraints>
                                                                             <constraint firstAttribute="height" constant="2" id="X7n-cL-6Hk"/>
                                                                         </constraints>
                                                                     </view>
                                                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="254" text="Date" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dvg-B2-xmI" userLabel="Date">
-                                                                        <rect key="frame" x="17" y="929" width="305.5" height="20"/>
+                                                                        <rect key="frame" x="17.5" y="929" width="305.5" height="20"/>
                                                                         <constraints>
                                                                             <constraint firstAttribute="height" constant="20" id="8LF-YM-5Cn"/>
                                                                         </constraints>
@@ -1263,14 +1264,14 @@
                                 <rect key="frame" x="0.0" y="20" width="375" height="30"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FiC-sd-IGL">
-                                        <rect key="frame" x="0.0" y="0.0" width="56.5" height="30"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="57" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                         <state key="normal" title="&lt;">
                                             <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         </state>
                                     </button>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gasteizko Margolariak" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v7W-BZ-qle">
-                                        <rect key="frame" x="56.5" y="0.0" width="262.5" height="30"/>
+                                        <rect key="frame" x="57" y="0.0" width="262.5" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         <nil key="highlightedColor"/>
@@ -1329,7 +1330,7 @@
                                                                         </constraints>
                                                                     </imageView>
                                                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s4H-vW-9W1" userLabel="Text">
-                                                                        <rect key="frame" x="17" y="121" width="305.5" height="39"/>
+                                                                        <rect key="frame" x="17.5" y="121" width="305.5" height="39"/>
                                                                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                                         <nil key="textColor"/>
                                                                         <nil key="highlightedColor"/>
@@ -1514,7 +1515,7 @@
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Pzh-mM-oRb">
-                                <rect key="frame" x="14.5" y="14.5" width="345" height="637"/>
+                                <rect key="frame" x="15" y="15" width="345" height="637"/>
                                 <subviews>
                                     <textView clipsSubviews="YES" multipleTouchEnabled="YES" userInteractionEnabled="NO" contentMode="scaleToFill" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" text="Localizacion" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="TdI-Mq-pQ8" userLabel="Title">
                                         <rect key="frame" x="0.0" y="0.0" width="345" height="33"/>
@@ -1712,14 +1713,14 @@
                                 <rect key="frame" x="0.0" y="20" width="375" height="30"/>
                                 <subviews>
                                     <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eUA-DI-pYf">
-                                        <rect key="frame" x="0.0" y="0.0" width="56.5" height="30"/>
+                                        <rect key="frame" x="0.0" y="0.0" width="57" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                         <state key="normal" title="&lt;">
                                             <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         </state>
                                     </button>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Gasteizko Margolariak" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="die-Pc-rjK">
-                                        <rect key="frame" x="56.5" y="0.0" width="262.5" height="30"/>
+                                        <rect key="frame" x="57" y="0.0" width="262.5" height="30"/>
                                         <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
                                         <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                         <nil key="highlightedColor"/>
@@ -1902,7 +1903,7 @@
         <image name="Pinpoint" width="10" height="13"/>
     </resources>
     <inferredMetricsTieBreakers>
-        <segue reference="bix-gF-Nro"/>
+        <segue reference="I7s-Ej-GB6"/>
         <segue reference="0Qp-db-Qb0"/>
     </inferredMetricsTieBreakers>
 </document>

+ 1 - 1
app/EventController.swift

@@ -149,7 +149,7 @@ class EventController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Dismisses the controller.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	

+ 1 - 1
app/FutureActivityViewController.swift

@@ -67,7 +67,7 @@ class FutureActivityViewController: UIViewController, UIGestureRecognizerDelegat
 	/**
 	Dismisses the controller.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	

+ 1 - 1
app/GalleryView.swift

@@ -153,7 +153,7 @@ class GalleryView: UIView {
 	/**
 	Opens an album.
 	*/
-	func openAlbum(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openAlbum(_ sender:UITapGestureRecognizer? = nil){
 		let id = (sender?.view as! RowGallery).id
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showAlbum(id: id)

+ 6 - 6
app/HomeView.swift

@@ -90,7 +90,7 @@ class HomeView: UIView {
 		//Get info to populate sections
 		self.moc = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
 		
-		self.delegate = UIApplication.shared.delegate as! AppDelegate
+        self.delegate = (UIApplication.shared.delegate as! AppDelegate)
 		self.moc?.persistentStoreCoordinator = self.delegate?.persistentStoreCoordinator
 		self.lang = getLanguage()
 		
@@ -141,7 +141,7 @@ class HomeView: UIView {
 	Sets up the location section.
 	If no location is reported, it hiddes the section.
 	*/
-	func setUpLocation(){
+	@objc func setUpLocation(){
 		let defaults = UserDefaults.standard
 		if (defaults.value(forKey: "GMLocLat") != nil && defaults.value(forKey: "GMLocLon") != nil){
 			let lat = defaults.value(forKey: "GMLocLat") as! Double
@@ -561,7 +561,7 @@ class HomeView: UIView {
 	/**
 	Opens a post.
 	*/
-	func openPost(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openPost(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPost(id: (sender?.view as! RowHomeBlog).id)
 	}
@@ -570,7 +570,7 @@ class HomeView: UIView {
 	/**
 	Opens the La Blanca section when tapping the section.
 	*/
-	func openLablanca(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openLablanca(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showComponent(selected: 2)
 	}
@@ -579,7 +579,7 @@ class HomeView: UIView {
 	/**
 	Opens the Location section when tapping the section.
 	*/
-	func openLocation(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openLocation(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showComponent(selected: 1)
 	}
@@ -587,7 +587,7 @@ class HomeView: UIView {
 	/**
 	Commands the view controller to show the Gasteizko Margolariak schedule view.
 	*/
-	func openGMSchedule(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openGMSchedule(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showSchedule(margolari: true)
 	}

+ 2 - 2
app/LablancaView.swift

@@ -251,7 +251,7 @@ class LablancaView: UIView {
 	/**
 	Commands the view controller to show the city schedule view.
 	*/
-	func openSchedule(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openSchedule(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showSchedule(margolari: false)
 	}
@@ -260,7 +260,7 @@ class LablancaView: UIView {
 	/**
 	Commands the view controller to show the Gasteizko Margolariak schedule view.
 	*/
-	func openGMSchedule(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openGMSchedule(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showSchedule(margolari: true)
 	}

+ 1 - 1
app/LocationView.swift

@@ -90,7 +90,7 @@ class LocationView: UIView {
 	/**
 	Get new user location and recalculates distance to GM .
 	*/
-	func getNewLocation(){
+	@objc func getNewLocation(){
 		let defaults = UserDefaults.standard
 		if (defaults.value(forKey: "GMLocLat") != nil && defaults.value(forKey: "GMLocLon") != nil){
 			let lat = defaults.value(forKey: "GMLocLat") as! Double

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Activity+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Activity+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Activity: NSManagedObject {
+
+}

+ 41 - 0
app/NSManagedObjects/app/Base.lproj/Activity+CoreDataProperties.swift

@@ -0,0 +1,41 @@
+//
+//  Activity+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Activity {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Activity> {
+        return NSFetchRequest<Activity>(entityName: "Activity")
+    }
+
+    @NSManaged public var after_en: String?
+    @NSManaged public var after_es: String?
+    @NSManaged public var after_eu: String?
+    @NSManaged public var album: Int32
+    @NSManaged public var city: String?
+    @NSManaged public var comments: Int16
+    @NSManaged public var date: NSDate?
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var inscription: Int16
+    @NSManaged public var max_people: Int16
+    @NSManaged public var people: Int16
+    @NSManaged public var permalink: String?
+    @NSManaged public var price: Int16
+    @NSManaged public var text_en: String?
+    @NSManaged public var text_es: String?
+    @NSManaged public var text_eu: String?
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Activity_comment+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Activity_comment+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Activity_comment: NSManagedObject {
+
+}

+ 27 - 0
app/NSManagedObjects/app/Base.lproj/Activity_comment+CoreDataProperties.swift

@@ -0,0 +1,27 @@
+//
+//  Activity_comment+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Activity_comment {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Activity_comment> {
+        return NSFetchRequest<Activity_comment>(entityName: "Activity_comment")
+    }
+
+    @NSManaged public var activity: Int32
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var lang: String?
+    @NSManaged public var text: String?
+    @NSManaged public var username: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Activity_image+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Activity_image+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Activity_image: NSManagedObject {
+
+}

+ 25 - 0
app/NSManagedObjects/app/Base.lproj/Activity_image+CoreDataProperties.swift

@@ -0,0 +1,25 @@
+//
+//  Activity_image+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Activity_image {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Activity_image> {
+        return NSFetchRequest<Activity_image>(entityName: "Activity_image")
+    }
+
+    @NSManaged public var activity: Int32
+    @NSManaged public var id: Int32
+    @NSManaged public var idx: Int16
+    @NSManaged public var image: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Activity_itinerary+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Activity_itinerary+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Activity_itinerary: NSManagedObject {
+
+}

+ 33 - 0
app/NSManagedObjects/app/Base.lproj/Activity_itinerary+CoreDataProperties.swift

@@ -0,0 +1,33 @@
+//
+//  Activity_itinerary+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Activity_itinerary {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Activity_itinerary> {
+        return NSFetchRequest<Activity_itinerary>(entityName: "Activity_itinerary")
+    }
+
+    @NSManaged public var activity: Int32
+    @NSManaged public var description_en: String?
+    @NSManaged public var description_es: String?
+    @NSManaged public var description_eu: String?
+    @NSManaged public var end: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var name_en: String?
+    @NSManaged public var name_es: String?
+    @NSManaged public var name_eu: String?
+    @NSManaged public var place: Int32
+    @NSManaged public var route: Int32
+    @NSManaged public var start: NSDate?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Activity_tag+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Activity_tag+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Activity_tag: NSManagedObject {
+
+}

+ 23 - 0
app/NSManagedObjects/app/Base.lproj/Activity_tag+CoreDataProperties.swift

@@ -0,0 +1,23 @@
+//
+//  Activity_tag+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Activity_tag {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Activity_tag> {
+        return NSFetchRequest<Activity_tag>(entityName: "Activity_tag")
+    }
+
+    @NSManaged public var activity: Int32
+    @NSManaged public var tag: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Album+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Album+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Album: NSManagedObject {
+
+}

+ 31 - 0
app/NSManagedObjects/app/Base.lproj/Album+CoreDataProperties.swift

@@ -0,0 +1,31 @@
+//
+//  Album+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Album {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Album> {
+        return NSFetchRequest<Album>(entityName: "Album")
+    }
+
+    @NSManaged public var description_en: String?
+    @NSManaged public var description_es: String?
+    @NSManaged public var description_eu: String?
+    @NSManaged public var id: Int32
+    @NSManaged public var open: Int16
+    @NSManaged public var permalink: String?
+    @NSManaged public var time: NSDate?
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Festival+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Festival+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Festival: NSManagedObject {
+
+}

+ 30 - 0
app/NSManagedObjects/app/Base.lproj/Festival+CoreDataProperties.swift

@@ -0,0 +1,30 @@
+//
+//  Festival+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Festival {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Festival> {
+        return NSFetchRequest<Festival>(entityName: "Festival")
+    }
+
+    @NSManaged public var id: Int32
+    @NSManaged public var img: String?
+    @NSManaged public var summary_en: String?
+    @NSManaged public var summary_es: String?
+    @NSManaged public var summary_eu: String?
+    @NSManaged public var text_en: String?
+    @NSManaged public var text_es: String?
+    @NSManaged public var text_eu: String?
+    @NSManaged public var year: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Festival_day+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Festival_day+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Festival_day: NSManagedObject {
+
+}

+ 29 - 0
app/NSManagedObjects/app/Base.lproj/Festival_day+CoreDataProperties.swift

@@ -0,0 +1,29 @@
+//
+//  Festival_day+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Festival_day {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Festival_day> {
+        return NSFetchRequest<Festival_day>(entityName: "Festival_day")
+    }
+
+    @NSManaged public var date: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var max_people: Int16
+    @NSManaged public var name_en: String?
+    @NSManaged public var name_es: String?
+    @NSManaged public var name_eu: String?
+    @NSManaged public var people: Int16
+    @NSManaged public var price: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Festival_event+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Festival_event+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Festival_event: NSManagedObject {
+
+}

+ 35 - 0
app/NSManagedObjects/app/Base.lproj/Festival_event+CoreDataProperties.swift

@@ -0,0 +1,35 @@
+//
+//  Festival_event+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Festival_event {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Festival_event> {
+        return NSFetchRequest<Festival_event>(entityName: "Festival_event_city")
+    }
+
+    @NSManaged public var day: NSDate?
+    @NSManaged public var description_en: String?
+    @NSManaged public var description_es: String?
+    @NSManaged public var description_eu: String?
+    @NSManaged public var end: NSDate?
+    @NSManaged public var host: Int32
+    @NSManaged public var id: Int32
+    @NSManaged public var place: Int32
+    @NSManaged public var route: Int32
+    @NSManaged public var sponsor: Int32
+    @NSManaged public var start: NSDate?
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Festival_event_gm+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Festival_event_gm+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Festival_event_gm: NSManagedObject {
+
+}

+ 35 - 0
app/NSManagedObjects/app/Base.lproj/Festival_event_gm+CoreDataProperties.swift

@@ -0,0 +1,35 @@
+//
+//  Festival_event_gm+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Festival_event_gm {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Festival_event_gm> {
+        return NSFetchRequest<Festival_event_gm>(entityName: "Festival_event_gm")
+    }
+
+    @NSManaged public var day: NSDate?
+    @NSManaged public var description_en: String?
+    @NSManaged public var description_es: String?
+    @NSManaged public var description_eu: String?
+    @NSManaged public var end: NSDate?
+    @NSManaged public var host: Int32
+    @NSManaged public var id: Int32
+    @NSManaged public var place: Int32
+    @NSManaged public var route: Int32
+    @NSManaged public var sponsor: Int32
+    @NSManaged public var start: NSDate?
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Festival_event_image+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Festival_event_image+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Festival_event_image: NSManagedObject {
+
+}

+ 25 - 0
app/NSManagedObjects/app/Base.lproj/Festival_event_image+CoreDataProperties.swift

@@ -0,0 +1,25 @@
+//
+//  Festival_event_image+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Festival_event_image {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Festival_event_image> {
+        return NSFetchRequest<Festival_event_image>(entityName: "Festival_event_image")
+    }
+
+    @NSManaged public var event: Int32
+    @NSManaged public var id: Int32
+    @NSManaged public var idx: Int16
+    @NSManaged public var image: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Festival_offer+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Festival_offer+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Festival_offer: NSManagedObject {
+
+}

+ 31 - 0
app/NSManagedObjects/app/Base.lproj/Festival_offer+CoreDataProperties.swift

@@ -0,0 +1,31 @@
+//
+//  Festival_offer+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Festival_offer {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Festival_offer> {
+        return NSFetchRequest<Festival_offer>(entityName: "Festival_offer")
+    }
+
+    @NSManaged public var days: Int16
+    @NSManaged public var description_en: String?
+    @NSManaged public var description_es: String?
+    @NSManaged public var description_eu: String?
+    @NSManaged public var id: Int32
+    @NSManaged public var name_en: String?
+    @NSManaged public var name_es: String?
+    @NSManaged public var name_eu: String?
+    @NSManaged public var price: Int16
+    @NSManaged public var year: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Location+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Location+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Location: NSManagedObject {
+
+}

+ 24 - 0
app/NSManagedObjects/app/Base.lproj/Location+CoreDataProperties.swift

@@ -0,0 +1,24 @@
+//
+//  Location+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Location {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Location> {
+        return NSFetchRequest<Location>(entityName: "Location")
+    }
+
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var lat: Double
+    @NSManaged public var lon: Double
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Notification+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Notification+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Notification: NSManagedObject {
+
+}

+ 33 - 0
app/NSManagedObjects/app/Base.lproj/Notification+CoreDataProperties.swift

@@ -0,0 +1,33 @@
+//
+//  Notification+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Notification {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Notification> {
+        return NSFetchRequest<Notification>(entityName: "Notification")
+    }
+
+    @NSManaged public var action: String?
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var duration: Int32
+    @NSManaged public var gm: Int16
+    @NSManaged public var id: Int32
+    @NSManaged public var seen: Int16
+    @NSManaged public var text_en: String?
+    @NSManaged public var text_es: String?
+    @NSManaged public var text_eu: String?
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/People+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  People+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+@objc(People)
+public class People: NSManagedObject {
+
+}

+ 26 - 0
app/NSManagedObjects/app/Base.lproj/People+CoreDataProperties.swift

@@ -0,0 +1,26 @@
+//
+//  People+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension People {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<People> {
+        return NSFetchRequest<People>(entityName: "People")
+    }
+
+    @NSManaged public var id: Int32
+    @NSManaged public var link: String?
+    @NSManaged public var name_en: String?
+    @NSManaged public var name_es: String?
+    @NSManaged public var name_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Photo+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Photo+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Photo: NSManagedObject {
+
+}

+ 37 - 0
app/NSManagedObjects/app/Base.lproj/Photo+CoreDataProperties.swift

@@ -0,0 +1,37 @@
+//
+//  Photo+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Photo {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Photo> {
+        return NSFetchRequest<Photo>(entityName: "Photo")
+    }
+
+    @NSManaged public var description_en: String?
+    @NSManaged public var description_es: String?
+    @NSManaged public var description_eu: String?
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var file: String?
+    @NSManaged public var height: Int32
+    @NSManaged public var id: Int32
+    @NSManaged public var permalink: String?
+    @NSManaged public var place: Int32
+    @NSManaged public var size: Int64
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+    @NSManaged public var uploaded: NSDate?
+    @NSManaged public var username: String?
+    @NSManaged public var width: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Photo_album+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Photo_album+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Photo_album: NSManagedObject {
+
+}

+ 23 - 0
app/NSManagedObjects/app/Base.lproj/Photo_album+CoreDataProperties.swift

@@ -0,0 +1,23 @@
+//
+//  Photo_album+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Photo_album {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Photo_album> {
+        return NSFetchRequest<Photo_album>(entityName: "Photo_album")
+    }
+
+    @NSManaged public var album: Int32
+    @NSManaged public var photo: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Photo_comment+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Photo_comment+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+@objc(Photo_comment)
+public class Photo_comment: NSManagedObject {
+
+}

+ 27 - 0
app/NSManagedObjects/app/Base.lproj/Photo_comment+CoreDataProperties.swift

@@ -0,0 +1,27 @@
+//
+//  Photo_comment+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Photo_comment {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Photo_comment> {
+        return NSFetchRequest<Photo_comment>(entityName: "Photo_comment")
+    }
+
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var lang: String?
+    @NSManaged public var photo: Int32
+    @NSManaged public var text: String?
+    @NSManaged public var username: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Place+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Place+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Place: NSManagedObject {
+
+}

+ 31 - 0
app/NSManagedObjects/app/Base.lproj/Place+CoreDataProperties.swift

@@ -0,0 +1,31 @@
+//
+//  Place+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Place {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Place> {
+        return NSFetchRequest<Place>(entityName: "Place")
+    }
+
+    @NSManaged public var address_en: String?
+    @NSManaged public var address_es: String?
+    @NSManaged public var address_eu: String?
+    @NSManaged public var cp: String?
+    @NSManaged public var id: Int32
+    @NSManaged public var lat: Double
+    @NSManaged public var lon: Double
+    @NSManaged public var name_en: String?
+    @NSManaged public var name_es: String?
+    @NSManaged public var name_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Post+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Post+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Post: NSManagedObject {
+
+}

+ 32 - 0
app/NSManagedObjects/app/Base.lproj/Post+CoreDataProperties.swift

@@ -0,0 +1,32 @@
+//
+//  Post+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Post {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Post> {
+        return NSFetchRequest<Post>(entityName: "Post")
+    }
+
+    @NSManaged public var comments: Int16
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var permalink: String?
+    @NSManaged public var text_en: String?
+    @NSManaged public var text_es: String?
+    @NSManaged public var text_eu: String?
+    @NSManaged public var title_en: String?
+    @NSManaged public var title_es: String?
+    @NSManaged public var title_eu: String?
+    @NSManaged public var username: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Post_comment+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Post_comment+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Post_comment: NSManagedObject {
+
+}

+ 27 - 0
app/NSManagedObjects/app/Base.lproj/Post_comment+CoreDataProperties.swift

@@ -0,0 +1,27 @@
+//
+//  Post_comment+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Post_comment {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Post_comment> {
+        return NSFetchRequest<Post_comment>(entityName: "Post_comment")
+    }
+
+    @NSManaged public var dtime: NSDate?
+    @NSManaged public var id: Int32
+    @NSManaged public var lang: String?
+    @NSManaged public var post: Int32
+    @NSManaged public var text: String?
+    @NSManaged public var username: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Post_image+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Post_image+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Post_image: NSManagedObject {
+
+}

+ 25 - 0
app/NSManagedObjects/app/Base.lproj/Post_image+CoreDataProperties.swift

@@ -0,0 +1,25 @@
+//
+//  Post_image+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Post_image {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Post_image> {
+        return NSFetchRequest<Post_image>(entityName: "Post_image")
+    }
+
+    @NSManaged public var id: Int32
+    @NSManaged public var idx: Int16
+    @NSManaged public var image: String?
+    @NSManaged public var post: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Post_tag+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Post_tag+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Post_tag: NSManagedObject {
+
+}

+ 23 - 0
app/NSManagedObjects/app/Base.lproj/Post_tag+CoreDataProperties.swift

@@ -0,0 +1,23 @@
+//
+//  Post_tag+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Post_tag {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Post_tag> {
+        return NSFetchRequest<Post_tag>(entityName: "Post_tag")
+    }
+
+    @NSManaged public var post: Int32
+    @NSManaged public var tag: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Route+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Route+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+@objc(Route)
+public class Route: NSManagedObject {
+
+}

+ 24 - 0
app/NSManagedObjects/app/Base.lproj/Route+CoreDataProperties.swift

@@ -0,0 +1,24 @@
+//
+//  Route+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Route {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Route> {
+        return NSFetchRequest<Route>(entityName: "Route")
+    }
+
+    @NSManaged public var id: Int32
+    @NSManaged public var mins: Int32
+    @NSManaged public var name: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Route_point+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Route_point+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+@objc(Route_point)
+public class Route_point: NSManagedObject {
+
+}

+ 30 - 0
app/NSManagedObjects/app/Base.lproj/Route_point+CoreDataProperties.swift

@@ -0,0 +1,30 @@
+//
+//  Route_point+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Route_point {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Route_point> {
+        return NSFetchRequest<Route_point>(entityName: "Route_point")
+    }
+
+    @NSManaged public var id: Int32
+    @NSManaged public var lat_d: Double
+    @NSManaged public var lat_o: Double
+    @NSManaged public var lon_d: Double
+    @NSManaged public var lon_o: Double
+    @NSManaged public var part: Int16
+    @NSManaged public var place_d: Int32
+    @NSManaged public var place_o: Int32
+    @NSManaged public var route: Int32
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Sponsor+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Sponsor+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Sponsor: NSManagedObject {
+
+}

+ 36 - 0
app/NSManagedObjects/app/Base.lproj/Sponsor+CoreDataProperties.swift

@@ -0,0 +1,36 @@
+//
+//  Sponsor+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Sponsor {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Sponsor> {
+        return NSFetchRequest<Sponsor>(entityName: "Sponsor")
+    }
+
+    @NSManaged public var address_en: String?
+    @NSManaged public var address_es: String?
+    @NSManaged public var address_eu: String?
+    @NSManaged public var id: Int32
+    @NSManaged public var image: String?
+    @NSManaged public var lat: Double
+    @NSManaged public var link: String?
+    @NSManaged public var local: Bool
+    @NSManaged public var lon: Double
+    @NSManaged public var name_en: String?
+    @NSManaged public var name_es: String?
+    @NSManaged public var name_eu: String?
+    @NSManaged public var text_en: String?
+    @NSManaged public var text_es: String?
+    @NSManaged public var text_eu: String?
+
+}

+ 16 - 0
app/NSManagedObjects/app/Base.lproj/Version+CoreDataClass.swift

@@ -0,0 +1,16 @@
+//
+//  Version+CoreDataClass.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+public class Version: NSManagedObject {
+
+}

+ 23 - 0
app/NSManagedObjects/app/Base.lproj/Version+CoreDataProperties.swift

@@ -0,0 +1,23 @@
+//
+//  Version+CoreDataProperties.swift
+//  app
+//
+//  Created by Iñigo Valentin on 21/6/18.
+//  Copyright © 2018 Margolariak. All rights reserved.
+//
+//
+
+import Foundation
+import CoreData
+
+
+extension Version {
+
+    @nonobjc public class func fetchRequest() -> NSFetchRequest<Version> {
+        return NSFetchRequest<Version>(entityName: "Version")
+    }
+
+    @NSManaged public var section: String?
+    @NSManaged public var version: Int64
+
+}

+ 2 - 2
app/PastActivityViewController.swift

@@ -65,7 +65,7 @@ class PastActivityViewController: UIViewController, UIGestureRecognizerDelegate
 	/**
 	Dismisses the controller.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	
@@ -102,7 +102,7 @@ class PastActivityViewController: UIViewController, UIGestureRecognizerDelegate
 			for r in searchResults as [NSManagedObject] {
 				count = count + 1
 				sTitle = r.value(forKey: "title_\(lang)")! as! String
-				if (r.value(forKey: "after_\(lang)")! as! String).length != 0{
+				if ((r.value(forKey: "after_\(lang)") != nil) && ((r.value(forKey: "after_\(lang)")! as! String).length != 0)){
 					sText = r.value(forKey: "after_\(lang)")! as! String
 				}
 				else{

+ 9 - 6
app/PhotoViewController.swift

@@ -87,14 +87,17 @@ class PhotoViewController: UIViewController, UIGestureRecognizerDelegate {
 			albumFetchRequest.predicate = NSPredicate(format: "id = %i", albumId)
 			do {
 				let results = try context.fetch(albumFetchRequest)
-				let r = results[0]
-				self.albumTitle = r.value(forKey: "title_\(lang)")! as! String
+                if (results.count > 0){
+                    let r = results[0]
+                    self.albumTitle = r.value(forKey: "title_\(lang)")! as! String
+                }
 			}
 			catch {
 				NSLog(":PHOTO:ERROR: Error getting album info: \(error)")
 			}
 			
-		} catch {
+		}
+        catch {
 			NSLog(":PHOTO:ERROR: Error getting infor from album \(albumId): \(error)")
 		}
 		
@@ -117,7 +120,7 @@ class PhotoViewController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Dismisses the controller.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	
@@ -133,7 +136,7 @@ class PhotoViewController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Opens the next photo.
 	*/
-	func nextPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func nextPhoto(_ sender:UITapGestureRecognizer? = nil){
 		photoIdx = photoIdx + 1
 		loadPhoto(id: photoIds[photoIdx])
 	}
@@ -142,7 +145,7 @@ class PhotoViewController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Opens the previous photo.
 	*/
-	func prevPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func prevPhoto(_ sender:UITapGestureRecognizer? = nil){
 		photoIdx = photoIdx - 1
 		loadPhoto(id: photoIds[photoIdx])
 	}

+ 57 - 2
app/PostViewController.swift

@@ -33,7 +33,8 @@ class PostViewController: UIViewController, UIGestureRecognizerDelegate {
 	@IBOutlet weak var postText: UILabel!
 	@IBOutlet weak var postTitle: UILabel!
 	@IBOutlet weak var postImage: UIImageView!
-	
+    @IBOutlet weak var postDate: UILabel!
+    
 	var id: Int = -1
 	var passId: Int = -1
 	var delegate: AppDelegate?
@@ -64,7 +65,7 @@ class PostViewController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Dismisses the controller, efectively going to the previous section.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	
@@ -96,6 +97,7 @@ class PostViewController: UIViewController, UIGestureRecognizerDelegate {
 			var sTitle: String
 			var sText: String
 			var image: String
+            var date: NSDate
 			
 			for r in searchResults as [NSManagedObject] {
 				
@@ -103,6 +105,8 @@ class PostViewController: UIViewController, UIGestureRecognizerDelegate {
 				sText = r.value(forKey: "text_\(lang)")! as! String
 				postTitle.text = "  \(sTitle.decode().stripHtml())"
 				postText.text = sText.decode().stripHtml()
+                date = r.value(forKey: "dtime")! as! NSDate
+                postDate.text = formatDate(date: date, lang: lang)
 				
 				// Get main image
 				image = ""
@@ -136,6 +140,57 @@ class PostViewController: UIViewController, UIGestureRecognizerDelegate {
 		}
 	}
 	
+    
+    /**
+     Formats a date to the desired language.
+     :param: text The date.
+     :param: lang Device language (only 'es', 'en', or 'eu').
+     */
+    func formatDate(date: NSDate, lang: String) -> String{
+        
+        let months_es = ["0index", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"]
+        let months_en = ["0index", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
+        let months_eu = ["0index", "urtarrilaren", "otsailaren", "martxoaren", "abrilaren", "maiatzaren", "ekainaren", "ustailaren", "abustuaren", "irailaren", "urriaren", "azaroaren", "abenduaren"]
+        let days_es = ["0index", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sábado", "Domingo"]
+        let days_en = ["0index", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
+        let days_eu = ["0index", "Astelehena", "Asteartea", "Asteazkena", "Osteguna", "Ostirala", "Larumbata", "Igandea"]
+        
+        let calendar = Calendar.current
+        let day = calendar.component(.day, from: date as Date)
+        let month = calendar.component(.month, from: date as Date)
+        let weekday = calendar.component(.weekday, from: date as Date)
+        var strDate = ""
+        
+        switch lang{
+        case "en":
+            
+            var dayNum = ""
+            switch day{
+            case 1:
+                dayNum = "1th"
+                break
+            case 2:
+                dayNum = "2nd"
+                break;
+            case 3:
+                dayNum = "3rd"
+                break;
+            default:
+                dayNum = "\(weekday)th"
+            }
+            
+            strDate = "\(days_en[weekday]), \(months_en[month]) \(dayNum)"
+            break
+        case "eu":
+            strDate = "\(days_eu[weekday]) \(months_eu[month]) \(day)an"
+            break
+        default:
+            strDate = "\(days_es[weekday]) \(day) de \(months_es[month])"
+        }
+        
+        return strDate
+    }
+    
 	
 	/**
 	Gets the device language. The only recognized languages are Spanish, English and Basque.

+ 2 - 2
app/RowAlbum.swift

@@ -101,7 +101,7 @@ Extension of UIView to be formatted as a row of an album.
 	/**
 	Opens the photo in the left side in a new controller.
 	*/
-	func openLeftPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openLeftPhoto(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.albumController?.showPhoto(album: self.id, photo: self.photoIds[0])
 	}
@@ -110,7 +110,7 @@ Extension of UIView to be formatted as a row of an album.
 	/**
 	Opens the photo in the right side in a new controller.
 	*/
-	func openRightPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openRightPhoto(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.albumController?.showPhoto(album: self.id, photo: self.photoIds[1])
 	}

+ 1 - 1
app/RowBlog.swift

@@ -128,7 +128,7 @@ Extension of UIView to be formatted as post rows.
 	/**
 	Opens an activity.
 	*/
-	func openPost(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openPost(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPost(id: self.id)
 	}

+ 1 - 1
app/RowGallery.swift

@@ -101,7 +101,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Opens an album in other controller.
 	*/
-	func openAlbum(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openAlbum(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showAlbum(id: self.id)
 	}

+ 1 - 1
app/RowHomeBlog.swift

@@ -128,7 +128,7 @@ Extension of UIView to be formatted as a row on the blog section of the home vie
 	/**
 	Opens a post in a controller.
 	*/
-	func openPost(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openPost(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPost(id: self.id)
 	}

+ 1 - 1
app/RowHomeFutureActivities.swift

@@ -128,7 +128,7 @@ Extension of UIView to be formatted as a future activity in the home screen.
 	/**
 	Opens an activity in a controller.
 	*/
-	func openActivity(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openActivity(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showFutureActivity(id: self.id)
 	}

+ 4 - 4
app/RowHomeGallery.swift

@@ -82,7 +82,7 @@ Extension of UIView to be formatted as a the gallery section in the home view.
 	/**
 	Open the first photo in the photo viewer.
 	*/
-	func openFirstPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openFirstPhoto(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPhoto(album: self.albumIds[0], photo: self.photoIds[0])
 	}
@@ -91,7 +91,7 @@ Extension of UIView to be formatted as a the gallery section in the home view.
 	/**
 	Open the second photo in the photo viewer.
 	*/
-	func openSecondPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openSecondPhoto(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPhoto(album: self.albumIds[1], photo: self.photoIds[1])
 	}
@@ -100,7 +100,7 @@ Extension of UIView to be formatted as a the gallery section in the home view.
 	/**
 	Open the third photo in the photo viewer.
 	*/
-	func openThirdPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openThirdPhoto(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPhoto(album: self.albumIds[2], photo: self.photoIds[2])
 	}
@@ -109,7 +109,7 @@ Extension of UIView to be formatted as a the gallery section in the home view.
 	/**
 	Open the fourth photo in the photo viewer.
 	*/
-	func openFourthPhoto(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openFourthPhoto(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPhoto(album: self.albumIds[3], photo: self.photoIds[3])
 	}

+ 1 - 1
app/RowHomePastActivities.swift

@@ -125,7 +125,7 @@ Extension of UIView to be formatted as past activity rows.
 	/**
 	Opens an activity.
 	*/
-	func openActivity(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openActivity(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPastActivity(id: self.id)
 	}

+ 7 - 7
app/RowHomeSocial.swift

@@ -111,7 +111,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the phone button is tapped.
 	*/
-	func didTapPhone() {
+	@objc func didTapPhone() {
 		UIApplication.shared.openURL(NSURL(string: "tel://+34637140371")! as URL)
 	}
 	
@@ -119,7 +119,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the mail button is tapped.
 	*/
-	func didTapMail() {
+	@objc func didTapMail() {
 		UIApplication.shared.openURL(NSURL(string: "mailto:gasteizkomargolariak@gmail.com")! as URL)
 	}
 	
@@ -127,7 +127,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the Facebook button is tapped.
 	*/
-	func didTapFacebook() {
+	@objc func didTapFacebook() {
 		UIApplication.shared.openURL(NSURL(string: "http://facebook.com/gmargolariak")! as URL)
 	}
 	
@@ -135,7 +135,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the Twitter button is tapped.
 	*/
-	func didTapTwitter() {
+	@objc func didTapTwitter() {
 		UIApplication.shared.openURL(NSURL(string: "http://twitter.com/gmargolariak")! as URL)
 	}
 	
@@ -143,7 +143,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the G+ button is tapped.
 	*/
-	func didTapGoogle() {
+	@objc func didTapGoogle() {
 		UIApplication.shared.openURL(NSURL(string: "https://plus.google.com/106661466029005469492")! as URL)
 	}
 	
@@ -151,7 +151,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the Youtube button is tapped.
 	*/
-	func didTapYoutube() {
+	@objc func didTapYoutube() {
 		UIApplication.shared.openURL(NSURL(string: "https://www.youtube.com/user/GasteizkoMargolariak")! as URL)
 	}
 	
@@ -159,7 +159,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Called when the Instagram button is tapped.
 	*/
-	func didTapInstagram() {
+	@objc func didTapInstagram() {
 		UIApplication.shared.openURL(NSURL(string: "https://instagram.com/gmargolariak/")! as URL)
 	}
 	

+ 3 - 3
app/RowItinerary.swift

@@ -49,8 +49,8 @@ Extension of UIView to be formatted an activity itinerary.
 	Loads the view from the xib with the same name as the class.
 	*/
 	private func loadViewFromNib() {
-		let bundle = Bundle(for: type(of: self))
-		let nib = UINib(nibName: String(describing: type(of: self)), bundle: bundle)
+		let bundle = Bundle(for: Swift.type(of: self))
+		let nib = UINib(nibName: String(describing: Swift.type(of: self)), bundle: bundle)
 		nib.instantiate(withOwner: self, options: nil)
 	}
 	
@@ -167,7 +167,7 @@ Extension of UIView to be formatted an activity itinerary.
 	/**
 	Opens an event dialog.
 	*/
-	func openItinerary(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openItinerary(_ sender:UITapGestureRecognizer? = nil){
 		// TODO implement openItinerary.
 		NSLog(":ROWITINERARY:DEBUG: Open Itinerary")
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate

+ 1 - 1
app/RowPastActivity.swift

@@ -123,7 +123,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Opens an activity.
 	*/
-	func openActivity(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openActivity(_ sender:UITapGestureRecognizer? = nil){
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.controller?.showPastActivity(id: self.id)
 	}

+ 1 - 1
app/RowSchedule.swift

@@ -164,7 +164,7 @@ Extension of UIView to be formatted as sections.
 	/**
 	Opens an schedule dialog.
 	*/
-	func openSchedule(_ sender:UITapGestureRecognizer? = nil){
+	@objc func openSchedule(_ sender:UITapGestureRecognizer? = nil){
 		NSLog(":ROWSCHEDULE:DEBUG: Open schedule")
 		let delegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
 		delegate.scheduleController?.showEvent(id: self.id)

+ 3 - 3
app/ScheduleViewController.swift

@@ -87,7 +87,7 @@ class ScheduleViewController: UIViewController, UIGestureRecognizerDelegate {
 	/**
 	Returns to the main view controller.
 	*/
-	func back() {
+	@objc func back() {
 		self.dismiss(animated: true, completion: nil)
 	}
 	
@@ -313,7 +313,7 @@ class ScheduleViewController: UIViewController, UIGestureRecognizerDelegate {
 	Shows the schedule of the next day
 	:param: sender Event trigger.
 	*/
-	func nextDay(_ sender:UITapGestureRecognizer? = nil){
+	@objc func nextDay(_ sender:UITapGestureRecognizer? = nil){
 		changeDay(increment: 1)
 	}
 
@@ -322,7 +322,7 @@ class ScheduleViewController: UIViewController, UIGestureRecognizerDelegate {
 	Shows the schedule of the previous day.
 	:param: sender Event trigger.
 	*/
-	func prevDay(_ sender:UITapGestureRecognizer? = nil){
+	@objc func prevDay(_ sender:UITapGestureRecognizer? = nil){
 		changeDay(increment: -1)
 	}
 

+ 2 - 2
app/String.swift

@@ -95,7 +95,7 @@ extension String {
 		let ed = self.index(self.startIndex, offsetBy: end)
 		
 		let range = st...ed
-		return self[range]
+		return String(self[range])
 	}
 	
 	
@@ -106,7 +106,7 @@ extension String {
 	func stripHtml() -> String {
 		let d = data(using: String.Encoding.utf8)
 		do{
-			return try NSAttributedString(data: d!, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], documentAttributes: nil).string
+			return try NSAttributedString(data: d!, options: [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html, NSAttributedString.DocumentReadingOptionKey.characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil).string
 		} catch let error as NSError {
 			print(error.localizedDescription)
 			return self

+ 7 - 7
app/Sync.swift

@@ -89,12 +89,12 @@ class Sync{
 		
 		var urlStr: String = ""
 		
-		if initial{
-			urlStr = "http://192.168.1.101/API/v3/fastsync.php?client=com.margolariak.app&user=\(uId)\(strVersions)"
-		}
-		else{
-			urlStr = "http://192.168.1.101/API/v3/sync.php?client=com.margolariak.app&user=\(uId)\(strVersions)"
-		}
+		//if initial{
+		//	urlStr = "https://margolariak.com/API/v3/fastsync.php?client=com.margolariak.app&user=\(uId)\(strVersions)"
+		//}
+		//else{
+			urlStr = "https://margolariak.com/API/v3/sync.php?client=com.margolariak.app&user=\(uId)\(strVersions)"
+		//}
 		let url = URL(string: urlStr)
 
 		
@@ -252,7 +252,7 @@ class Sync{
 						
 						dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
 						dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.ISO8601)! as Calendar
-						dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale!
+                        dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") as Locale?
 						dateFormatter.timeZone = NSTimeZone.local
 						let timeString = value//"\(value.subStr(start: 0, end: 19))"
 						let dayString = "\(value.subStr(start: 0, end: 10)) 00:00:00"

+ 2 - 2
app/SyncController.swift

@@ -79,7 +79,7 @@ class SyncController: UIViewController{
 		}
 	}
 	
-	func endSync(){
+	@objc func endSync(){
 		if self.nowSyncing == false{
 			syncTimer?.invalidate()
 			startApp()
@@ -126,7 +126,7 @@ class SyncController: UIViewController{
 	/**
 	Signal to update the progressbar and, maybe, the tag.
 	*/
-	func progress(){
+	@objc func progress(){
 		
 		if (Int(completion * 100) % 20) == 0 {
 			let rnd = Int(arc4random_uniform(UInt32(messages.count)));

+ 1 - 1
app/ViewController.swift

@@ -215,7 +215,7 @@ class ViewController: UIViewController, UICollectionViewDataSource, UICollection
 	/**
 	Asynchronously gets a location report from the server.
 	*/
-	func fetchLocation(){
+	@objc func fetchLocation(){
 		FetchLocation()
 	}
 	

+ 6 - 6
app/app.xcdatamodeld/app2.xcdatamodel/contents

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="12141" systemVersion="16F73" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="V2">
+<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="13772" systemVersion="16G1314" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="V2">
     <entity name="Activity" representedClassName=".Activity" syncable="YES" codeGenerationType="class">
         <attribute name="after_en" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="after_es" optional="YES" attributeType="String" syncable="YES"/>
@@ -103,7 +103,7 @@
         <attribute name="title_es" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="title_eu" optional="YES" attributeType="String" syncable="YES"/>
     </entity>
-    <entity name="Festival_event_gm" representedClassName="Festival_event_gm" syncable="YES" codeGenerationType="class">
+    <entity name="Festival_event_gm" representedClassName=".Festival_event_gm" syncable="YES" codeGenerationType="class">
         <attribute name="day" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
         <attribute name="description_en" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="description_es" optional="YES" attributeType="String" syncable="YES"/>
@@ -283,6 +283,7 @@
         <element name="Festival" positionX="36" positionY="-3852" width="128" height="180"/>
         <element name="Festival_day" positionX="-9" positionY="-3906" width="128" height="165"/>
         <element name="Festival_event_city" positionX="-261" positionY="-3810" width="128" height="253"/>
+        <element name="Festival_event_gm" positionX="-245" positionY="-4104" width="128" height="255"/>
         <element name="Festival_event_image" positionX="9" positionY="-3888" width="128" height="105"/>
         <element name="Festival_offer" positionX="18" positionY="-3879" width="128" height="195"/>
         <element name="Location" positionX="27" positionY="-3870" width="128" height="90"/>
@@ -290,16 +291,15 @@
         <element name="People" positionX="-9" positionY="-3906" width="128" height="120"/>
         <element name="Photo" positionX="-9" positionY="-3906" width="128" height="285"/>
         <element name="Photo_album" positionX="0" positionY="-3897" width="128" height="75"/>
+        <element name="Photo_comment" positionX="-9" positionY="-3906" width="128" height="135"/>
         <element name="Place" positionX="9" positionY="-3888" width="128" height="195"/>
         <element name="Post" positionX="18" positionY="-3879" width="128" height="210"/>
         <element name="Post_comment" positionX="27" positionY="-3870" width="128" height="135"/>
         <element name="Post_image" positionX="36" positionY="-3861" width="128" height="105"/>
         <element name="Post_tag" positionX="45" positionY="-3852" width="128" height="75"/>
-        <element name="Sponsor" positionX="-9" positionY="-3906" width="128" height="270"/>
-        <element name="Version" positionX="-9" positionY="-3906" width="128" height="75"/>
-        <element name="Photo_comment" positionX="-9" positionY="-3906" width="128" height="135"/>
         <element name="Route" positionX="0" positionY="-3897" width="128" height="90"/>
         <element name="Route_point" positionX="9" positionY="-3888" width="128" height="180"/>
-        <element name="Festival_event_gm" positionX="-245" positionY="-4104" width="128" height="253"/>
+        <element name="Sponsor" positionX="-9" positionY="-3906" width="128" height="270"/>
+        <element name="Version" positionX="-9" positionY="-3906" width="128" height="75"/>
     </elements>
 </model>