Отображать логическое значение как true/false вместо 1/0 в NSTableView
В реализацииNSTableViewDataSource
метод
func tableView(tableView: NSTableView!, objectValueForTableColumn tableColumn: NSTableColumn!, row: Int) -> AnyObject!
, возвращаемый результат для столбца является родным Swift Bool
типизированное значение. Я ожидал, что это отображается как true
или же false
в табличном представлении. Тем не менее, это на самом деле отображается как 1
или же 0
, Я думаю, это могло быть приведено к AnyObject
и стал объектом Obj-C. Какой простой способ сделать их отображаемыми как true
или же false
в табличном представлении?
1 ответ
Решение
Цель-C Bool
тип на самом деле signed char
под одеялом.
objc.h:typedef signed char BOOL;
objc.h:#define YES ((BOOL)1)
objc.h:#define NO ((BOOL)0)
Поэтому, когда вы возвращаете это как объект, вы на самом деле возвращаете что-то, что приводится к NSInteger, поэтому он показывает 0
или же 1
,
Чтобы решить эту проблему, измените метод объекта, чтобы он возвращал
return theBoolValue ? @"true" : @"false"