Objective-C не может установить переменную класса / объекта - PullRequest
0 голосов
/ 11 ноября 2011

Я пытаюсь заставить этот код работать, но не могу получить какой-либо вывод, который показывает, что переменные установлены:

#import <Foundation/Foundation.h>
#import "thingy.h"

int main (int argc, const char * argv[])
{

@autoreleasepool {

thingy *mythingy;

    [mythingy setMass:75.00];
    [mythingy setTime:5.00];

    NSLog(@"mass of mythingy = %f kg", [mythingy mass]);
    NSLog(@"time of mythingy = %f sec", [mythingy time]);

    }
return 0;
}

это вывод, который я получаю:

mass of mythingy = 0.000000 kg
time of mythingy = 0.000000 sec

Я также пытался не использовать @autoreleasepool (ARC), и код выглядит следующим образом, но с тем же выводом, что и раньше:

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    thingy *mythingy;

    [mythingy setMass:75.00];
    [mythingy setTime:5.00];

    NSLog(@"mass of mythingy = %f kg", [mythingy mass]);
    NSLog(@"time of mythingy = %f sec", [mythingy time]);

[mythingy release];
[pool drain];

UPDATE:

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

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
thingy *mythingy = [[thingy alloc]init];

    [mythingy setMass:75.00];
    [mythingy setTime:5.00];

    NSLog(@"mass of mythingy = %f kg", [mythingy mass]);
    NSLog(@"time of mythingy = %f sec", [mythingy time]);

[mythingy release];
[pool drain];

Вывод этого кода:

mass of mythingy = 75.000000 kg
time of mythingy = 5.000000 sec

Ответы [ 2 ]

5 голосов
/ 11 ноября 2011

Вы должны создать объект (mythingy), прежде чем сможете его использовать.Попробуйте изменить thingy *mythingy; на thingy *mythingy = [mythingy new]; или инициализировать его с помощью пользовательского метода, если вы его реализовали.

2 голосов
/ 11 ноября 2011

Где вы разместили вещь?
Вам нужно что-то вроде

mythingy = [[thingy alloc] init];
// or
mythingy = [thingy new];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...