문제

다음 코드가 있습니다.

@interface UIAcceleration (Simulation)

- (id) initWithTimestamp:(NSTimeInterval)aTimeStamp
                     X:(UIAccelerationValue)ax
                     Y:(UIAccelerationValue)ay
                     Z:(UIAccelerationValue)az;

@end

@implementation UIAcceleration (Simulation)

-(id)initWithTimestamp:(NSTimeInterval)aTimeStamp
                     X:(UIAccelerationValue)ax
                     Y:(UIAccelerationValue)ay
                     Z:(UIAccelerationValue)az 
{
    if (self = [super init])
    {
        timestamp = aTimeStamp;
        x = ax;
        y = ay;
        z = az;
    }

    return self;
}       

@end

Simulator SDK 용으로 이것을 컴파일 할 때 모든 것이 잘 작동합니다. 장치 SDK를 컴파일 할 때 다음 링커 오류가 발생합니다.

  "_OBJC_IVAR_$_UIAcceleration.x", referenced from:
      _OBJC_IVAR_$_UIAcceleration.x$non_lazy_ptr in UIAcceleration+IRowAdditions.o
  "_OBJC_IVAR_$_UIAcceleration.y", referenced from:
      _OBJC_IVAR_$_UIAcceleration.y$non_lazy_ptr in UIAcceleration+IRowAdditions.o
  "_OBJC_IVAR_$_UIAcceleration.z", referenced from:
      _OBJC_IVAR_$_UIAcceleration.z$non_lazy_ptr in UIAcceleration+IRowAdditions.o
  "_OBJC_IVAR_$_UIAcceleration.timestamp", referenced from:
      _OBJC_IVAR_$_UIAcceleration.timestamp$non_lazy_ptr in AccelerometerSimulation.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

내가 뭘 잘못하고 있죠? 시뮬레이터 프레임 워크 (즉 UIKIT)와의 연결과 장치 프레임 워크와 연결하는 것의 다른 점은 무엇입니까?

도움이 되었습니까?

해결책 3

좋아, 주어진 대답 중 어느 것도 도움이되지 않았기 때문에, 나는 다른 일을했다.

uiacceleration과 정확히 같은 인터페이스를 가진 클래스를 만들었습니다. 둘 다 동일한 메모리 레이아웃을 가지고 있기 때문에 uiacceleration의 포인터와 내 클래스 사이를 안전하게 캐스트 할 수 있습니다. 적어도 GCC가 원하는만큼.

다른 팁

Uikit 프레임 워크의 시뮬레이터 버전 만 포함했을 것입니다. 나는 이것에 대해 확실하지 않지만 Xcode의 왼쪽 창으로 가고 프레임 워크 폴더, 마우스 오른쪽 버튼을 클릭하십시오 uikit.framework 그리고 정보를 얻다. 내 것은 길은입니다 /System/Library/Frameworks/UIKit.framework 그리고 바로 그 아래에서 말합니다 경로 유형 : "현재 SDK와 관련이있다". 이는 건축 내용에 따라 올바른 프레임 워크를 자동으로 가져와야합니다.

수표할만한 가치가 있습니다.

이것은 관련 될 수 있습니다 이 문제 iPhone에 카테고리가 있습니다. "다른 링커 플래그"에 -objc (iPhone OS 2.X) 및 -all_load (iPhone OS 3.0)를 추가하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top