鍍金池/ 問答/iOS/ Swift 4 數(shù)組debug打印print的結(jié)果是數(shù)字?

Swift 4 數(shù)組debug打印print的結(jié)果是數(shù)字?

swift小白
我現(xiàn)在做的是對(duì)一個(gè)已有的本地?cái)?shù)據(jù)庫"data.s3db"查詢的app。

已經(jīng)使用FMDB庫,現(xiàn)在的問題是,輸出的數(shù)組print后為0x60000013edc0這樣的數(shù)字……是編碼方式不對(duì)嗎?
1.這是模型scoreModel.swift

import Foundation
import UIKit
class scoreModel: NSObject {
    var lessonName:String = String()
    var lessonCode:String = String()
    var creditPoint:Double = Double()
    var totalStudentNumber:Int = Int()
    var teacherName:String = String()
    var semesterName:String = String()
    var scoreValue:String = String()
    var studentCount:Int = Int()
}

2.這是數(shù)據(jù)庫管理類SQLiteManager.swift

import Foundation
import UIKit
class SQLiteManager: NSObject {
    // 0. 將類設(shè)計(jì)成單例
    static let shareInstance : SQLiteManager = SQLiteManager()
    override init()  {
        super.init()
    }
    // 1. 保存數(shù)據(jù)庫隊(duì)列對(duì)象
    var dbQueue : FMDatabaseQueue?
    // 2. 打開數(shù)據(jù)庫
    func openDB () {
        //2.1 設(shè)置數(shù)據(jù)庫的路徑;
        let dbPath = Bundle.main.path(forResource:"data", ofType: "s3db")

        //2.2 創(chuàng)建數(shù)據(jù)庫
        dbQueue = FMDatabaseQueue(path: dbPath)
    }

    // 3. 查詢數(shù)據(jù)庫,并將數(shù)據(jù)以數(shù)組的形式返回:
    func queryDB(sql: String) -> NSMutableArray {
        openDB ();
        // 3.1 創(chuàng)建可變數(shù)組
        let resultArray = NSMutableArray()

        // 3.2 執(zhí)行sql
        SQLiteManager.shareInstance.dbQueue?.inDatabase { (db) in
            let dbResult: FMResultSet! = db.executeQuery(sql, withArgumentsIn:[])

            // 遍歷結(jié)果
            while dbResult.next() {
                let model:scoreModel = scoreModel()
                model.lessonName = String(dbResult.string(forColumn: "lessonName")!)
                model.lessonCode = String(dbResult.string(forColumn: "lessonCode")!)
                model.creditPoint = Double(dbResult.double(forColumn: "creditPoint"))
                model.semesterName = String(dbResult.string(forColumn: "semesterName")!)
                model.teacherName = String(dbResult.string(forColumn: "teacherName")!)
                model.totalStudentNumber = Int(dbResult.int(forColumn: "totalStudentNumber"))
                model.scoreValue = String(dbResult.string(forColumn: "scoreValue")!)
                model.studentCount = Int(dbResult.int(forColumn: "studentCount"))
                // 添加到可變數(shù)組
                resultArray.add(model)
            }
        }
        return resultArray
    }
}

3.這是操作頁面ViewController.swift,SQL語句已經(jīng)經(jīng)過SQLiteStudio檢驗(yàn),我選了“%C%”為條件。

override func viewDidLoad() {
        super.viewDidLoad()
        //準(zhǔn)備sql語句
        let mysql = "SELECT Lesson.lessonName,Lesson.lessonCode, Lesson.creditPoint, Course.totalStudentNumber, Teacher.name AS teacherName, Semester.name AS semesterName, Score.scoreValue, Score.studentCount FROM (Lesson INNER JOIN Course ON Lesson.id = Course.lesson_id) LEFT JOIN Score ON Course.id = Score.course_id LEFT JOIN Teacher ON Course.teacher_id = Teacher.id LEFT JOIN Semester ON Course.semester_id = Semester.id WHERE Lesson.lessonName like '%C%' ORDER BY Semester.name desc"
        let resultArray = SQLiteManager.shareInstance.queryDB(sql:mysql)
        print(resultArray) 
    }

輸出結(jié)果為:

"<test.scoreModel: 0x600000135400>",
"<test.scoreModel: 0x604000135c20>",
"<test.scoreModel: 0x604000135cc0>",
"<test.scoreModel: 0x604000135d60>",
"<test.scoreModel: 0x604000135e00>",
"<test.scoreModel: 0x604000135ea0>",
"<test.scoreModel: 0x604000135f40>",
"<test.scoreModel: 0x604000135fe0>",

一臉蒙蔽……

用SQLiteStudio進(jìn)行語句查詢的結(jié)果都是正常的啊,類似

高等數(shù)學(xué)C(下)    MATH120006.01    4    70    29    杭國明    2010~2011學(xué)年第2學(xué)期    A    4

回答
編輯回答
蔚藍(lán)色

你需要重寫 descriptiondebugDescription

2017年12月15日 05:51