NSString литерал в uint32_t - PullRequest
0 голосов
/ 17 марта 2020

Я не уверен, что название подходит для того, что мне нужно сделать, но мне просто нужно взять буквальную строку NSString и сделать ее uint32_t

В основном это то, что я Я хочу сделать:

NSString *literal = @"0x0001234";
uint32_t = literal; // uint32_t = 0x0001234;

Я пытался использовать некоторые приведения, но они только что дали мне ошибки, так как я могу это сделать?

* Я не слишком знаком с Obj- C, поэтому не уверен, что именно я должен искать.

1 Ответ

1 голос
/ 17 марта 2020

Вы не можете использовать простое назначение, даже с регистром, потому что NSString и uint32 - это совершенно разные вещи.

Вы можете использовать метод NSScanner scanHexInt. Обратите внимание, что этот метод может завершиться ошибкой, если строка не является допустимой шестнадцатеричной строкой.

NSString *literal = @"0x0001234";
unsigned output = 0;
if ([[NSScanner scannerWithString:literal] scanHexInt:&output]) {
   // Do something with output
} else {
   // Unable to parse string
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...