2010-05-24 6 views
0

Winchain을 사용하여 Windows 7 컴퓨터에서 개발 중입니다. 여기 내 코드입니다 :
iPhoneTest.h'object'undeclared <이 기능에서 처음 사용>

#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 


@interface iPhoneTest : UIApplication { 
    UITextView *textview; 
    UIView *mainView; 
} 

@end 

는 iPhoneTest.m

#import "iPhoneTest.h" 
#import <UIKit/UIKit.h> 
#import <Foundation/Foundation.h> 
#import <CoreFoundation/CoreFoundation.h> 


@implementation iPhoneTest 
-(void)applicationDidFinishLaunching:(id)unused { 
    UIWindow *window; 
    struct CGRect rect = [UIHardware fullScreenApplicationContentRect]; 
    rect.origin.x = rect.origin.y = 0.0f; 

    window = [[UIWindow alloc] initWithContentRect: rect]; 
    mainView = [[UIView alloc] initWithFrame: rect]; 
    textView = [[UITextView alloc] init]; 
    [textView setEditable:YES]; 
    [textView setTextSize:14]; 

    [window orderFront: self]; 
    [window makeKey: self]; 
    [window _setHidden: NO]; 
    [window setContentView: mainView]; 
    [mainView addSubview:textView]; 

    [textView setText:@"Hello World"]; 

} 
@end 

main.m

#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 
#import "iPhoneTest.h" 


int main(int argc, char *argv[]) { 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    int ret = UIApplicationMain(argc, argv, [iPhoneTest class]); 
    [pool release]; 
    return ret; 
} 

메이크

INFOPLIST_FILE=Info.plist 
SOURCES=\ 
    main.m \ 
    iPhoneTest.m 

CC=/usr/local/bin/arm-apple-darwin-gcc 
CFLAGS=-g -O2 -Wall 
LD=$(CC) 
LDFLAGS=-lobjc -framework CoreFoundation -framework Foundation -framework UIKit  -framework LayerKit 
PRODUCT_NAME=iPhoneTest 
SRCROOT=/iphone-apps/iPhoneTest 

WRAPPER_NAME=$(PRODUCT_NAME).app 
EXECUTABLE_NAME=$(PRODUCT_NAME) 
SOURCES_ABS=$(addprefix $(SRCROOT)/,$(SOURCES)) 
INFOPLIST_ABS=$(addprefix $(SRCROOT)/,$(INFOPLIST_FILE)) 
OBJECTS=\ 
    $(patsubst %.c,%.o,$(filter %.c,$(SOURCES))) \ 
    $(patsubst %.cc,%.o,$(filter %.cc,$(SOURCES))) \ 
    $(patsubst %.cpp,%.o,$(filter %.cpp,$(SOURCES))) \ 
    $(patsubst %.m,%.o,$(filter %.m,$(SOURCES))) \ 
    $(patsubst %.mm,%.o,$(filter %.mm,$(SOURCES))) 
OBJECTS_ABS=$(addprefix $(CONFIGURATION_TEMP_DIR)/,$(OBJECTS)) 
APP_ABS=$(BUILT_PRODUCTS_DIR)/$(WRAPPER_NAME) 
PRODUCT_ABS=$(APP_ABS)/$(EXECUTABLE_NAME) 

all: $(PRODUCT_ABS) 

$(PRODUCT_ABS): $(APP_ABS) $(OBJECTS_ABS) 
    $(LD) $(LDFLAGS) -o $(PRODUCT_ABS) $(OBJECTS_ABS) 

$(APP_ABS): $(INFOPLIST_ABS) 
    mkdir -p $(APP_ABS) 
    cp $(INFOPLIST_ABS) $(APP_ABS)/ 

$(CONFIGURATION_TEMP_DIR)/%.o: $(SRCROOT)/%.m 
    mkdir -p $(dir [email protected]) 
    $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o [email protected] 

clean: 
    echo rm -f $(OBJECTS_ABS) 
    echo rm -rf $(APP_ABS) 

내가 make 함께 컴파일하려고, 나는

iPhoneTest.m: In function '-[iPhoneTest applicationDidFinishLaunching:]' 
iPhoneTest.m:15: error: 'textView' undeclared <first use in this function> 
iPhoneTest.m:15: error: <Each undeclared identifier is reported only once for each function it appears in> 

사람이 문제를 발견 할 수거야?

+0

.m에서 .h에서 textview하지만 textView을 나 오류가 정말 'Testview 등'이라고 말합니까? –

+0

나는 그것을 바로 잡았다. –

답변

3

헤더는 textview (소문자)을 선언하지만 구현은 textView (camelCase)을 나타냅니다. 식별자는 대소 문자를 구분합니다.

1

당신이 '텍스트 뷰'를 의미했다

+0

이것은 같은 문제와 답을 가진 다섯 번째 유사한 질문과 같습니다. 그래서 집단 파서/렉서/typechecker 일종의 :) – Jack