Maison > Questions et réponses > le corps du texte
#define _UIKeyboardFrameEndUserInfoKey (&UIKeyboardFrameEndUserInfoKey != NULL ? UIKeyboardFrameEndUserInfoKey : @"UIKeyboardBoundsUserInfoKey")
这段代码我知道是什么意思,但是不明白为什么判断是不是NULL的时候要对变量先取址?我自己写代码测试时会有警告,说拿地址跟非NULL比较永远都是true
大家讲道理2017-04-18 09:47:40
D'accord, je me suis réveillé après un bon sommeil et j'ai découvert que quelqu'un avec la même question m'avait déjà répondu sur Baozhen, alors je vais le poster ici... Ce que j'ai demandé sur Baozhen, c'était pourquoi il avait besoin d'utiliser le Adresse. Pour comparer avec NULL, puis quelqu'un l'a modifié. Pourquoi devons-nous utiliser une adresse constante pour comparer avec NULL ? Parce que cette UIKey.....est bien une constante
Eh bien, voici la réponse qui, je pense, a résolu mon problème "La comparaison de l'adresse d'une constante (ou d'une fonction) à null est généralement utilisée pour déterminer si la constante est définie.
Vous recevez l'avertissement car le SDK sur lequel vous construisez (version cible minimale) a la constante définie, il sera donc toujours évalué comme vrai (l'adresse ne sera cependant pas nulle lorsqu'elle sera exécutée). une version d'iOS qui n'a pas la constante définie, ce ne sera pas vrai (l'adresse sera nulle).
Si vous réduisiez la version cible à une version inférieure où la constante était définie, elle serait faiblement liée à ce SDK et vous ne recevriez plus l'avertissement. »