Что не так с этой строкой? - PullRequest
1 голос
/ 01 августа 2011

Мое приложение вылетает, когда я нажимаю кнопку «своя». Я не знаю, что не так с моим кодом. Я новичок в этом, так что, если я полностью облажался, не будь таким жестким, пожалуйста :). РЕДАКТИРОВАТЬ: Это то, что Xcode говорит:

    #1  0x000144fd in -[UIApplication sendAction:to:from:forEvent:] ()

Приложение вылетает на линии:

   if (thing.hidden == NO) {

Это код, который принадлежит "own":

    - (IBAction)own {

if (thing.hidden == NO) {

int rNumber = rand() % 4;

switch (rNumber) {
    case 0:
        result.text  = @"A";
        break;
    case 1:
        result.text = @"B";
        break;
    case 2:
        result.text = @"C";
        break;
    case 3:
        result.text = @"D";
        break;
    default:
        break;
}

}
if (thing.hidden == YES) {
    int rNumber = rand() % 3;

Ответы [ 4 ]

2 голосов
/ 01 августа 2011

Может быть несколько рассонов

IBAction - это просто подсказка, которая сообщает конструктору интерфейсов, где искать методы в ваших объектах, чтобы вы могли связать элементы управления с методами.

В iOS действия могут принимать ноль, один или 2 параметра.

Если один параметр, этот параметр является объектом, отправляющим сообщение:

-(IBAction) someAction: (id) sender;

Если два параметра, он принимает вид:

- (IBAction) someAction:(id) sender forEvent: (UIEvent*) event;

Вы можете использовать - (void) own и подключиться к своей кнопке в файле nib

0 голосов
/ 15 ноября 2013

Я только что встретил этот вопрос.Именно из-за управления памятью я отправляю действие, связанное с кнопкой, в выпущенный viewController.Надеюсь, что это поможет. (Кстати, я использую режим дуги)

0 голосов
/ 01 августа 2011
- (IBAction)own {

if (thing.hidden == NO) {

int rNumber = rand() % 4;
NSString *myText = @""; // 
switch (rNumber) {
    case 0:
        myText  = @"A";
        break;
    case 1:
        myText = @"B";
        break;
    case 2:
       myText = @"C";
       break;
    case 3:
       myText = @"D";
       break;
   default:
       break;
}
result.text = myText;
}
if (thing.hidden == YES) {
    int rNumber = rand() % 3;
0 голосов
/ 01 августа 2011

В вашем коде нет ничего неправильного, если предположить, что объекты вещь и результат правильно сохранены .

...