2013-12-06 3 views
0

Я пытаюсь добавить символы гекса в NSArray, как указано нижеКак сохранить символы гекса в NSArray

  [[NSArray alloc]initWithObjects:0x0C,0xFF,0x46,0x64, nil]; 

Но он выходит из строя, заявив EXE_BED_ACCESS.Can любой, пожалуйста, помогите, как я могу сохранить эти символы в NSArray?

ответ

3

Объекты Objective-C нельзя хранить не объекты.

Вам необходимо преобразовать все эти символы Hexa в объектные объекты, прежде чем добавлять их в массив.

Box это NSNumber, а затем использовать

[[NSArray alloc] initWithObjects:@(0x0C), @(0xFF), @(0x46), @(0x64), nil]; 

Чтобы преобразовать его обратно, вам нужно снова отменить поле число.

NSNumber *num = self.array[2]; //here i am extracing only the 3rd object. 
NSInteger integerValue = [num integerValue]; 

NSLog(@"%X",integerValue); 
+0

'@ 0x0C, @ 0xFF, ...' тоже будет работать. "(" и ")" необходимы только тогда, когда переменные бокса – medvedNick

+0

@medvedNick: yes :) –

+0

то как я могу вернуть символ, когда я получаю его измененный на f0 70 a0 60? пожалуйста, помогите – Ali

0

просто положить @ Infront персонажей гекса

NSArray *ArrayName = [[NSArray alloc]initWithObjects:@0x0C,@0xFF,@0x46,@0x64, nil]; 

это не тестировалось п работает нормально не падает на всех.

Смежные вопросы