2014-11-27 2 views
0

사용하려고합니다 this guthubthis link에 따르면 객관적인 c 개인 API를 사용하지만 설명서는 꽤 형편 없습니다.Objective-c 숨겨진 API (iphone) 사용

예문 코드를 내 xcode에 복사했지만 컴파일 오류가 발생합니다.

NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/TelephonyUI.framework"]; 
BOOL success = [b load]; 

Class SKTelephonyController = NSClassFromString(@"SKTelephonyController"); 

//this line cussing the error 
**id tc = [SKTelephonyController sharedInstance];** 

NSLog(@"-- myPhoneNumber: %@", [tc myPhoneNumber]); 
NSLog(@"-- imei: %@", [tc imei]); 

는 오류 :

No known instance method for selector 'myPhoneNumber' 

누군가가 가이드 또는 뭔가를 주실 수는 시작합니다.

오, 내 애플이 애플 밸리데이션을 통과하지 못한다는 것을 알고있다.

감사합니다. 모든

+0

'myPhoneNumber' 메소드에는 보이는 클래스가 없습니다. 언제든지 하나를 위로 올려 놓을 수 있습니다. –

답변

2

첫째, 예 SKTelephonyController를로드 할 말을하지 않습니다, 그것은 GAIA.framework
둘째 SKTelephonyController 및 GAIA이 (가 아이폰 OS 6 작업을했다)

다음

이 iOS7에 사용할 수 없습니다 있다는 것입니다로드 말한다 예를 들어, 인터페이스를 더미 선언하고 호출을 수행하는 방법에 대해 설명합니다.

@interface SKTelephonyController : NSObject 

+ (id)sharedInstance; 
+ (NSString *)myPhoneNumber; 
+ (NSString *)imei; 

@end 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/GAIA.framework"]; 
    BOOL success = [b load]; 
    if (!success) { 
     NSLog(@"Can't load bundle"); 
     return; 
    } 
    NSLog(@"-- imei: %@", [[SKTelephonyController sharedInstance] imei]); 
} 
+0

우선, 답변을 주셔서 감사합니다.하지만 저는 여전히 이해할 수 없습니다. "gaia"프레임 워크는 지원되지 않지만 귀하의 스 니펫을 사용하고 있다고 말씀하셨습니다. 그건 그렇고 - 내가 캔트 내가 헤더 파일과 내가해야 할 일을 이해 downloded 오늘 일하는 모든 예제를 줄 수 있습니까? 감사합니다. Idan. –

+0

은 iOS 6에서 작동하지만 ios7 + – l0gg3r

+0

에 대한 해결책이없는 것 같습니다. 알았습니다. iOS 7 \ 8에서 익숙해 질 수있는 무언가에 대한 스 니펫을 제공 할 수 있습니까? 그건 그렇고 - i'v가 다운로드 한 헤더 파일로 무엇을할까요? tham을 개인 framwork 폴더에 복사해야합니까? 아니면 그 안을 들여다 보죠? 도와 주셔서 다시 한 번 감사드립니다. –