Вы можете попробовать это: если вы добавляете изображение в левой панели навигации, напишите это:
let leftAddBarButtonItemMenu = UIBarButtonItem(image: #imageLiteral(resourceName: "menu"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.btnLeftMenuClicked(sender:)))
navigationItem.leftBarButtonItems = [leftAddBarButtonItemMenu]
, если вы добавите изображение в правой панели навигации, напишите это:
let rightNavBarItem = UIBarButtonItem(image: #imageLiteral(resourceName: "menu"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.btnRightClicked(sender:)))
navigationItem.rightBarButtonItem = [rightNavBarItem]
Если добавить Заголовок в правой панели навигации, затем напишите это:
let rightNavBarItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.btnRightClicked(sender:)))
navigationItem.rightBarButtonItem = [rightNavBarItem]
Это может помочь вам. Спасибо
htonl, htons, ntohl, ntohs функции может использоваться для преобразования между сетевыми и локальными заказами байта.
Вы только что инвертировали байты от того, что Вы ожидали - они находятся в сетевом порядке байтов
3770168404 = 0xE0 B8 34 54 network byte order
| |
\ /
\ /
\ /
\ /
/\
/ \
/ \
/ \
| |
1412741344 = 0x54 34 B8 E0 machine order
Вы могли использовать ntohl (), преобразовывают от сетевого порядка до порядка машины.
Возвращенный результат корректен, байты заказаны в сетевом порядке байтов
84 => 0x54
52 => 0x34
184 => 0xb8
224 => 0xe0
0xe0b83454 => 3770168404
Я думаю, что можно сталкиваться с проблемой порядка байтов. Из страницы справочника:
Все Интернет-адреса возвращаются в сетевом порядке (байты, заказанные слева направо). Все номера сетей и локальные части адреса возвращаются как целочисленные значения порядка байтов машины.
Внимательно проверьте ссылку ниже:
http: // msdn.microsoft.com/en-us/library/ms738563(VS.85).aspx