Я новичок в Objective C, и я пытаюсь запустить один из примеров из книги, но результат двух экземпляров дает тот же результат. Вот код:Создание двух экземпляров, но вывод остается таким же
#include <Foundation/Foundation.h>
//--- @interface section ---
@interface Fraction: NSObject
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int)d;
@end
//--- @implementation section ---
@implementation Fraction
int numerator;
int denominator;
-(void) print
{
NSLog(@"%i/%i", numerator, denominator);
}
-(void) setNumerator: (int) n
{
numerator = n;
}
-(void) setDenominator: (int) d
{
denominator = d;
}
@end
int main(int argc, const char * argv[])
{
NSAutoreleasePool * fzrpool = [[NSAutoreleasePool alloc] init];
Fraction *myFraction = [[Fraction alloc] init];
[myFraction setNumerator: 1];
[myFraction setDenominator: 5];
Fraction *fzr = [[Fraction alloc] init];
[fzr setNumerator: 3];
[fzr setDenominator: 2];
NSLog (@"The value of myFraction is: ");
[myFraction print];
NSLog (@"The value of fzr is: ");
[fzr print];
[fzrpool drain];
return 0;
}
ВЫВОД
2013-12-17 11:56:01.187 helloworld[1988] The value of myFraction is:
2013-12-17 11:56:01.187 helloworld[1988] 3/2
2013-12-17 11:56:01.187 helloworld[1988] The value of fzr is:
2013-12-17 11:56:01.187 helloworld[1988] 3/2
Я не могу использовать @autoreleasepool {} здесь, потому что я работаю над окнами, НКУ. Что я здесь делаю неправильно?
Ваш и числитель и знаменатель являются глобальными, поэтому последнее значение будет сохраняться. Вы хотите, чтобы оба они вели себя как свойство ivar /, поэтому их нужно помещать внутри {и} –
, которые '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' :( –