制作一个日程安排 ios 应用程序,但不明白怎么做
Posted
技术标签:
【中文标题】制作一个日程安排 ios 应用程序,但不明白怎么做【英文标题】:Making a schedule ios app but don't understand how to do it 【发布时间】:2016-12-04 12:18:38 【问题描述】:对于学校,我正在制作一个 ios 应用,其中包含某个学生的花名册。学生可以使用 ID 登录,并使用该 ID 显示相应的时间表。到目前为止,ID系统正在运行。但我似乎无法弄清楚如何使日程安排部分工作。我有每个学生 ID 的 JSON 数据,并且想每天过滤它,但老实说,我不知道如何过滤。
我很想得到一些帮助,因为我真的不知道如何做到这一点。
代码如下:
let url = URL(string: "(will give url if neccesary)")
let task = URLSession.shared.dataTask(with: url!) (data, response, error) in
if error != nil
print ("ERROR")
else
if let content = data
do
//Array
let myJson = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSMutableDictionary
let Days = myJson["Days"] as! NSDictionary
let DayName = Days["Monday"]
print (DayName)
catch
task.resume()
我目前在 "let Days = myJson["Days"] as!NSDictionary" 处得到一个 "Thread 8: signal SIGABRT"
我的控制台显示
“无法将 '__NSArrayM' (0x106520c30) 类型的值转换为 'NSDictionary' (0x106521108)。”
很想得到一些帮助,因为我不知道如何解决这个问题
提前致谢, 赛布伦
【问题讨论】:
错误信息非常清楚:键Days
的值是一个数组,而不是字典,无论如何,在 Swift 中对 NSMutableArray/Dictionary...
的任何转换都是荒谬的。
对不起,我对 swift/xcode 没有任何经验。我应该把它改成什么?
Days
真正包含什么?字符串数组还是什么?
我想要一种方式,例如可以在星期一询问,然后只从星期一获取信息,我和一个朋友试图弄清楚,过了一会儿我们就停下来了跨度>
原来是这样的let myJson = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSMutableDictionary print (myJson)
,后来我试了一天打印,然后就搞砸了
【参考方案1】:
为了方便起见,首先创建一个类型别名
typealias JSONDictionary = [String:Any]
if let content = data
行不需要,如果error
不是nil
,data
保证不是nil
。
这将打印课程的 StudentName
、日期名称和键值 Clas-s-room
、Name
和 Teacher
:
do
if let json = try JSONSerialization.jsonObject(with:data!, options: []) as? JSONDictionary
print(json["StudentName"] as! String)
if let days = json["Days"] as? [JSONDictionary]
for day in days
print(day["DayName"] as! String)
if let lessons = day["Lessons"] as? [JSONDictionary]
for lesson in lessons
let classRoom = lesson["Clas-s-room"] as! String
let name = lesson["Name"] as! String
let teacher = lesson["Teacher"] as! String
print(classRoom, name, teacher)
catch
print(error)
【讨论】:
有效!现在可以将所有天转换为 UITableView 吗?或者什么是最好的展示方式? 为对象创建自定义结构或类总是好的做法。 所以我必须每天创建一个类? 这取决于模型结构。我至少会使用一个带有所有参数的类Lesson
,也可能使用一个带有name : String
、class : String
和days : [Day]
属性的类Student
,以及一个包含name : String
和lessons : [Lesson]
的Day
类。
我很抱歉,但这不是问题所在。 *** 不是代码编写服务。从 JSON 数据填充表视图是最常见的问题之一。以上是关于制作一个日程安排 ios 应用程序,但不明白怎么做的主要内容,如果未能解决你的问题,请参考以下文章
IOS 8 iPad 仅制作 Launch Screen 人像
不明白如何本地化 iOS react-native 应用的 plist