obj-cコードがあります。プラグインでサポートされていないメッセージを送信する予定です。しかし、私はメッセージを無視するように思えない。私は " - (id)forward:(SEL)selector :(marg_list)arglist;"と思った。それを解決するだろうが、それはない。どのように私は警告と終了呼び出しを取得せずに、このアプリを完全に実行させるのですか?目的のCでメッセージを無視する
#import <stdio.h>
#import <objc/Object.h>
//------- @interface section -------
@interface Fraction: Object
{
int numerator;
int denominator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
-(id) forward: (SEL) selector: (marg_list) arglist;
@end
//------- @implementation section -------
@implementation Fraction;
-(void) print
{
printf (" %i/%i ", numerator, denominator);
}
-(void) setNumerator: (int) n
{
numerator = n;
}
-(void) setDenominator: (int) d
{
denominator = d;
}
-(id) forward: (SEL) selector: (marg_list) arglist
{
return nil;
}
@end
//------- program section -------
int main (int argc, char *argv[])
{
Fraction *myFraction;
// Create an instance of a Fraction
myFraction = [Fraction alloc];
myFraction = [myFraction init];
// Set fraction to 1/3
[myFraction setNumerator: 1];
[myFraction setDenominator: 3];
// Display the fraction using the print method
printf ("The value of myFraction is:");
[myFraction print];
printf ("\n");
[myFraction someMsg: 99];
[myFraction free];
printf("end");
return 0;
}
オブジェクトを直接的にサブクラス化することは、単に落胆されるだけではありません。実際にはOS XやGNUStepでは何も行いません。 NSObjectとNSProxyはどちらもルートレベルのオブジェクトです。 Objectはセマンティクスを保持/解放しないので、NSObjectベースのコレクションとAPIにそれらを渡すことは正しく機能しません。 –