cari

Rumah  >  Soal Jawab  >  teks badan

ios - 一个NSString的指针怎么判断是不是为null?

#define _UIKeyboardFrameEndUserInfoKey (&UIKeyboardFrameEndUserInfoKey != NULL ? UIKeyboardFrameEndUserInfoKey : @"UIKeyboardBoundsUserInfoKey")这段代码我知道是什么意思,但是不明白为什么判断是不是NULL的时候要对变量先取址?我自己写代码测试时会有警告,说拿地址跟非NULL比较永远都是true

PHPzPHPz2771 hari yang lalu592

membalas semua(1)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 09:47:40

    Baiklah, saya bangun selepas tidur nyenyak dan mendapati seseorang yang mempunyai soalan yang sama telah menjawab saya di Baozhen, jadi saya akan siarkan di sini... Apa yang saya tanya tentang Baozhen ialah mengapa dia perlu menggunakan alamat. Untuk membandingkan dengan NULL, dan kemudian seseorang mengubahnya Mengapa kita perlu menggunakan alamat tetap untuk membandingkan dengan NULL? Kerana UIKey itu.....memang pemalar
    Nah inilah jawapan yang saya fikir menyelesaikan masalah saya "Membandingkan alamat pemalar (atau fungsi) kepada null secara amnya digunakan untuk menentukan sama ada pemalar ditakrifkan.

    Anda mendapat amaran kerana SDK yang anda gunakan (versi sasaran minimum) mempunyai pemalar yang ditentukan, jadi ia akan sentiasa dinilai kepada benar (alamatnya tidak akan menjadi batal). versi iOS yang tidak mempunyai pemalar yang ditentukan, ia tidak akan benar (alamatnya akan menjadi batal).

    Jika anda menurunkan versi sasaran kepada versi di bawah di mana pemalar ditentukan, ia akan memaut lemah ke SDK itu dan anda tidak akan menerima amaran lagi.”

    balas
    0
  • Batalbalas