2014-03-27 3 views
1

에서 C 파일을 포함하도록 내가 하나 내보기 컨트롤러에서이 코드를했다. 하지만 저는 C 언어의 기능으로 해왔습니다. 오래된 습관은 많이 죽습니다.어떻게 아이폰 OS 프로젝트

은 지금이 콘텐츠와 파일 WOC_Random.c이

#include <stdio.h> 
#include <stdlib.h> // for arc4random() function 

#ifndef WOC_Random_C 
#define WOC_Random_C 


int randomInt(int startInt, int endInt) 
{ 
    int randomNumber = (arc4random() % startInt) + endInt; 

    return randomNumber; 
} 

#endif 

이제 내보기 컨트롤러 코드는 다음과 같습니다

:

int randomNumber = randomInt(1, 6); 

하지만 연결에 문제가있다,이 오류가

duplicate symbol _randomInt in: 
/Users/Mac/Library/Developer/Xcode/DerivedData/GuessTheNumber-gjovdrsarctubnbqhczqukvahwgb/Build/Intermediates/GuessTheNumber.build/Debug-iphonesimulator/GuessTheNumber.build/Objects-normal/i386/GTN_FirstViewController.o 
/Users/Mac/Library/Developer/Xcode/DerivedData/GuessTheNumber-gjovdrsarctubnbqhczqukvahwgb/Build/Intermediates/GuessTheNumber.build/Debug-iphonesimulator/GuessTheNumber.build/Objects-normal/i386/WOC_Random.o 
ld: 1 duplicate symbol for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

나는 모호한, 문제가있다.
하지만 수정 방법을 모르십니까?
어떻게 해결할 수 있습니까, 링커 또는 컴파일러에 몇 가지 인수가 필요합니까?

또한이 경우 iOS 개발을 위해 C 함수로 구현하는 것이 가장 좋은 방법을 구현하는 간단한 함수가 있거나 Object C의 클래스 함수로 사용하는 것이 더 좋습니다.

+0

WOC_Random.h에 무엇이 있습니까? –

+0

Objective-C 코드 용 .m 및 .h 파일을 가지고있는 것처럼 일반 C 코드 용 .c 및 .h 파일이 있어야합니다 (Objective-C는 c의 확장이기 때문에 .m 및 .h 파일을 사용하여 원하는 경우 C 코드에서 Objective-C 함수를 호출 할 수 있습니다. 클래스 메쏘드가 실제로 클래스에 속한다면 클래스 메쏘드를 생성해야합니다. C 함수를 클래스 메소드로 넣을 수 있도록 클래스를 생성하면 안됩니다. – gnasher729

답변

3

당신은 당신이 그런 WOC_Random.c에서 해당 기능을 정의하는 기능

int randomInt(int startInt, int endInt); 

를 선언 할에 (WOC_Random.h 같은) 헤더 파일을 추가해야합니다. 그리고 함수를 사용하고자하는 클래스에 WOC_Random.h를 포함시킵니다.