2014-02-16 3 views
0

Я новичок в разработку IOS, и я пытался сделать что-то, упомянутое ниже, и это дает мне ошибку:Ошибка с NSNumber

Implicit conversion of an objective c pointer to 'NSInteger*(aka int*) is disallowed with ARC.

В приведенном ниже коду, seg_pressed является собственностью сегментированного управления.

NSInteger *choice =[NSNumber numberWithInt:_seg_pressed.selectedSegmentIndex]; 

Что я делаю неправильно?

ответ

1

NSInteger - это сырой тип (очень похожий на C's «int» или «char»). Вы должны объявить «*choice» объектом «NSNumber *».

.: например

NSNumber *choice = [NSNumber numberWithInt:_seg_pressed.selectedSegmentIndex]; 

NSNumber является объектом Objective-C, в то время как NSInteger в конечном счете превращается в "long". Что может быть различным в зависимости от того, на какой платформе/архитектуре вы работаете. Как Apple's Foundation data types doc говорит:

When building 32-bit applications, NSInteger is a 32-bit integer. A 64-bit application treats NSInteger as a 64-bit integer.

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