В настоящее время я перехожу с C на Objective-C, и мне кажется, что этот код, кажется, все находит денди, но XCode думает иначе. Я получил этот пример кода из интернета и постоянно пытался его исправить, и я пришел к выводу:
#include <objc/Object.h>
@interface Greeter:Object
{
/* This is left empty on purpose:
** Normally instance variables would be declared here,
** but these are not used in our example.
*/
}
- (void)greet;
@end
#include <stdio.h>
@implementation Greeter
- (void)greet
{
printf("Hello, World!\n");
}
@end
#include <stdlib.h>
int main(void)
{
id myGreeter;
myGreeter = [Greeter new];
[myGreeter greet];
[myGreeter release];
return 0;
}
Ошибка, кажется, в строке myGreeter = [Greeter new];
, и XCode изолирует проблему как что-то в потоке 1. Нужно ли что-нибудь выделять / инициализировать?
Ниже находится журнал консоли:
[Switching to process 1833 thread 0x0]
2011-04-18 21:52:10.323 PROJ[1833:903] *** NSInvocation: warning: object 0x100001160 of class 'Greeter' does not implement methodSignatureForSelector: -- trouble ahead
2011-04-18 21:52:10.326 PROJ[1833:903] *** NSInvocation: warning: object 0x100001160 of class 'Greeter' does not implement doesNotRecognizeSelector: -- abort
sharedlibrary apply-load-rules all
Current language: auto; currently objective-c
(gdb)