블로그 이전
http://krazie99.github.io
Claire Keane

❣ Chile in a Photography ❣
"I'm Dorothy Gale from Kansas"
RMH
occasionally subtle
ojovivo

#extradirty

izzy's playlists!
Sade Olutola
Misplaced Lens Cap
trying on a metaphor
NASA
h

JBB: An Artblog!

Andulka
hello vonnie
Show & Tell


seen from Italy

seen from Spain
seen from Belgium
seen from Türkiye
seen from United States
seen from United Kingdom
seen from United States
seen from United States
seen from United States
seen from United States
seen from United States
seen from Spain
seen from United States

seen from Türkiye

seen from T1

seen from Malaysia

seen from Ecuador
seen from United States

seen from Malaysia

seen from United Kingdom
@nbapps-blog
블로그 이전
http://krazie99.github.io

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
[Obc-C] Store Kit
1. 프레임워크 등록 무엇보다도 먼저, 자신의 App에 프레임워크를 등록해주어야 한다. 왼쪽 'Group & Files'에서 'Frameworks'에서 오른쪽 버튼을 누르고, 'Add...'-'Existing Frameworks'를 선택한다. 그리고, 'StoreKit.framework'를 선택하여, 해당 프레임워크를 추가한다.
2. 헤더 등록 In App Purchase를 이용하기 위해서는 기본적으로 다음과 같은 헤더파일들을 추가해주어야 한다.
#import <StoreKit/SKProductsRequest.h> #import <StoreKit/SKProduct.h> #import <StoreKit/SKPaymentQueue.h> #import <StoreKit/SKPaymentTransaction.h>
3. 스토어 설정 및 Observer 등록 먼저, 스토어를 사용할 수 있는지 확인해야 하고, 사용 가능하다면 Observer를 등록해야 한다
if ([SKPaymentQueue canMakePayments]) { // 스토어가 사용 가능하다면 NSLog(@"Start Shop!"); [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; // Observer를 등록한다. } else NSLog(@"Failed Shop!");
옵져버를 등록할때, 해당 인스턴스는 SKPaymentTransactionObserver Protocol을 구현해야 한다. 그중 update만을 구현해도 사용하는데 문제 없다.
3. 옵져버 update만들기 옵져버로 등록된 클래스에 update를 등록해 준다.
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchased: [self completeTransaction:transaction]; break; case SKPaymentTransactionStateFailed: [self failedTransaction:transaction]; break; case SKPaymentTransactionStateRestored: [self restoreTransaction:transaction]; default: break; } } }
해당 트랜젝션의 결과에 따라서 각각 구분하도록 프로그래밍이 되어 있는데, 각 함수들은 다음과 같이 만들면 된다.
- (void) restoreTransaction: (SKPaymentTransaction *)transaction { NSLog(@"SKPaymentTransactionStateRestored"); [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; } - (void) failedTransaction: (SKPaymentTransaction *)transaction { NSLog(@"SKPaymentTransactionStateFailed"); [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; } - (void) completeTransaction: (SKPaymentTransaction *)transaction { NSLog(@"SKPaymentTransactionStatePurchased");
NSLog(@"Trasaction Identifier : %@", transaction.transactionIdentifier); NSLog(@"Trasaction Date : %@", transaction.transactionDate);
[[SKPaymentQueue defaultQueue] finishTransaction: transaction]; }
이런식으로 구성하면 된다.
4. 아이템정보 가져오기 특정 아이템 정보를 가져오기 위해서는 SKProductRequest를 사용한다. SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"testitem_01"]]; productRequest.delegate = self; [productRequest start]; 여기서 initWithProductIdentifiers 에는 아이템 등록할때 넣었던 'Product ID'를 넣을 수 있으며, 배열로 여러개 동시에 넣을수도 있다.
델리게이트는 SKProductRequestDelegate Protocol을 구현해야 한다.
위의 요청이 성공하게 되면, responseRequest를 호출하게 되는데, 다음과 같이 받을 수 있다.
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSLog(@"SKProductRequest got response"); if( [response.products count] > 0 ) { SKProduct *product = [response.products objectAtIndex:0]; NSLog(@"Title : %@", product.localizedTitle); NSLog(@"Description : %@", product.localizedDescription); NSLog(@"Price : %@", product.price); } if( [response.invalidProductIdentifiers count] > 0 ) { NSString *invalidString = [response.invalidProductIdentifiers objectAtIndex:0]; NSLog(@"Invalid Identifiers : %@", invalidString); } }
5. Item 결제 요청 하기 원하는 아이템을 결제요청은 SKPayment를 이용한다. SKPayment *payment = [SKPayment paymentWithProduct:product]; [[SKPaymentQueue defaultQueue] addPayment:payment];
이렇게 해주면, 그 뒤는 애플에서 알아서 처리하도록 되어 있다.
결제가 끝나면, 지정해준 Observer의 update함수가 호출된다.
출처 : http://creative-xenos.tistory.com/entry/In-App-Purchase-%EA%B0%9C%EB%B0%9C
[Obj-C] mainBundle의 버전정보 가져오기
info.pList 에서 메인 번들 소프트웨어 버전 가져오는 방법
[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
이용 하면 됩니다.
[Obj-C] Random()
보통 개발단에서 랜덤값을 사용하는데
int nRand = random()%10;
이라고 사용하게 되어도 같은 값만 나오는것이다....
이유는 초기값을 따로 안 정해주면 시스템의 초기값을 사용하는데 보통 이 값이 항상일정하니까 난수가 나오는 패턴이 일정했었다는 거..
그래서, 랜덤 함수 위에 단에
srandom(time(NULL));
초기값을 랜덤한 시간 등으로 넣어준다는 의미로 넣게 되면 진정한(?) 랜덤 함수가 완성된다 .
[Obj-C] Money Format
-(NSString*)moneyFormat:(NSString*)strNumber{
//스트링을 INT로 변경 int nTmp = [strNumber intValue];
NSNumberFormatter *fmt = [[[NSNumberFormatter alloc] init]autorelease]; [fmt setNumberStyle:NSNumberFormatterDecimalStyle];
//NSString 으로 저장 NSString *formatedString = [fmt stringFromNumber:[NSNumber numberWithInt:nTmp]];
return formatedString; }

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
[iOS] Keyword Checker
아이폰 어플 : Keyword Checker
개발 언어 : Object-C & iPhone SDK 3.1
MFC 프로그램만 만들다가 회사에서 아이폰 어플로 제작 키워드 검색 광고 (오버추어)에 대한 어플을 제작
다운로드 : itms://itunes.apple.com/kr/app/id363704299?mt=8
키워드 체커 : http://www.keywordchecker.co.kr