GNUstep을 사용하려고합니다. 잘 작동한다면, 나는 그것으로 웹 사이트를 만들려고 노력할 것이다. 어쨌든, 나는 처음부터 막혔다. GNUstep NSRunLoop
구현이 제대로 작동하지 않는 것 같습니다.GNUstep NSRunLoop이 ARC로 즉시 종료되는 이유는 무엇입니까?
여기 내 코드가 있습니다.
#import <Foundation/Foundation.h>
@interface AAA : NSObject
- (void)test1:(id)s;
@end
@implementation AAA
- (void)test1:(id)s
{
NSLog(@"%@", s);
}
- (void)dealloc
{
NSLog(@"DEALLOCED!!");
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool
{
AAA* aaa = [[AAA alloc] init];
[[NSNotificationCenter defaultCenter] addObserver:aaa selector:@selector(test1:) name:NSFileHandleDataAvailableNotification object:nil];
[[NSFileHandle fileHandleWithStandardInput] waitForDataInBackgroundAndNotify];
[[NSRunLoop currentRunLoop] run];
}
return 0;
}
이 코드로이 코드를 작성했습니다.
clang -v
EE_GNUSTEP_OPTS="-MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -D_NONFRAGILE_ABI -pthread -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -g -fgnu-runtime -fconstant-string-class=NSConstantString"
EE_BUILD_OPTS="-I/usr/local/include -L/usr/local/lib -lc -lobjc -lgnustep-base -fblocks -fobjc-arc -fobjc-abi-version=3"
alias OBJCC="clang $EE_GNUSTEP_OPTS $EE_BUILD_OPTS"
OBJCC *.m
OSX에서는 프로그램이 종료되지 않고 실행 루프가 계속 실행됩니다. ARC를 사용하지 않으면 FreeBSD의 GNUstep에서도 똑같이 작동합니다. ARC를 사용하면 프로그램이 즉시 종료됩니다. ARC를 사용하는 경우에만 작동하지 않는 이유를 알 수 없습니다. 왜 즉시 종료됩니까?
저는 여기에 사용되는 구성 요소 버전입니다 :
는svn co http://svn.gna.org/svn/gnustep/libs/libobjc2/releases/1.7 libobjc2-1.7 &
svn co http://svn.gna.org/svn/gnustep/tools/make/tags/make-2_6_5 make-2_6_5 &
svn co http://svn.gna.org/svn/gnustep/libs/base/tags/base-1_24_5 base-1_24_5 &
고마워요. 나는 다음 출시를 기다릴 것이다. 나는 메일 링리스트에 이것을 bug로 확인하기 위해 올렸지 만, 현재 나의 메일은 온건 한 상태라고 생각합니다. – Eonil