2016-11-02 3 views
1

Печать tableView объекта:Каков результат печати объекта?

override func viewDidAppear(_ animated: Bool) { 
    print(tableView) 
} 

Результаты в <UITableView: 0x7fe33701e000...

Is 0x7fe33701e000 адрес памяти объекта tableView или его ID или что это? Помощь очень ценится.

Добавление

override func viewDidAppear(_ animated: Bool) {   
    withUnsafePointer(to: &tableView) { 
     print("\(tableView) has address: \($0)") 
    } 
} 

Результаты в:

<UITableView: 0x7fcdca810600... has address: 0x00007fff594533f0 

Так что я в состоянии исключить мысль, что это может быть адрес памяти (?).

+0

Также см https://developer.apple.com/reference/objectivec/nsobject/1418799-description – Sulthan

ответ

1

0x7fcdca810600 - это адрес экземпляра UITableView, на который указывает переменная tableView.

0x00007fff594533f0 - это адрес переменной tableView.

Ваше первоначальное мнение было верным.

BTW - выход классов печати, например UITableView, относится к методу description. По умолчанию указывается тип объекта и адрес памяти. Вы можете изменить вывод путем внедрения или переопределения метода description.

+0

Так '0x7fcdca810600' это адрес памяти о' экземпляра UITableView' и '0x00007fff594533f0' является адрес объекта' tableView'? –

+0

Нет. Это то, что я сказал в своем ответе. 'tableView' не является объектом. Это переменная. Переменная (указатель) находится в памяти по одному адресу и указывает на фактический объект (экземпляр 'UITableView'). – rmaddy

+0

Хорошо. Да, мое плохое. –

Смежные вопросы