У меня есть этот код:
likeButton.tag = spik._id;
NSLog(@"spik ID=%@ likebtn.tag=%@",spik._id,likeButton.tag);
NSLog(@"%@", likeButton);
, где spik._id
равно NSInteger
И это вывод:
2012-03-11 19:35:37.751 KwikSpik[44277:ce03] spik ID=39975 likebtn.tag=39975
2012-03-11 19:35:37.752 KwikSpik[44277:ce03] <<UIButton: 0xd178b60; frame = (20 12604; 30 30); opaque = NO; tag = 90793136; layer = <CALayer: 0xd1788d0>>
Вы видите, что likeButton.tag = 39975
здесь, но когда я регистрирую кнопку, ее тег равен 90793136
.
если я напишу NSLog(@"spik ID=%@ likebtn.tag=%d",spik._id,likeButton.tag);
тогда я получу
012-03-11 23:27:38.290 KwikSpik[45326:ce03] spik ID=39975 likebtn.tag=87582784
Это разные представления одного числа или разных значений? Почему эти значения разные?
Позже, если я напишу
NSLog(@"tag d %d",sender.tag);
NSLog(@"tag @ %@",sender.tag);
где отправитель likeButton
, затем первый NSLog
выводит 87582784
, а второй аварийно завершает работу с EXC_BAD_ACCESS (code = 1, address = 0x30...)
Что происходит? Почему в likeButton.tag
и spik._id
есть разные значения - или они просто выглядят по-разному?
Почему NSLog в первый раз вывел likeButton.tag
с %@
, а во второй раз потерпел крах?