아이폰 어플을 만들고, 아이튠스 커넥트를 통해 아이튠스에 올리면, 판매가 시작되는데요, 판매 리포트 중, 판매, 업데이트, 등이 있는데 아래와 같은 그림의 내용이 있습니다.


Royalty waived transactions.. 도대체.. 뭘까..
궁금해서 찾아봤습니다.
(https://apparentetch.com/2011/01/royalty-waived-transactions/)

리딤코드로 다운받은 경우라고 하네요.. :0

p= promo code (리딤코드) 사용하여 다운받아 진 내역입니다. (나만 몰랐나 봐요~~~~) 
Posted by Sungyoup Han matrim

[참고: http://bees4honey.com/blog/tutorial/how-to-add-iad-banner-in-iphoneipad-app/]

필요한 framework : iAd.Framework

1. ziAd.h

#import <Foundation/Foundation.h>
#import <iAd/iAd.h>
@interface ziAd : NSObject <ADBannerViewDelegate>
 
{
    ADBannerView *adBanner;
    BOOL bannerIsVisible;    
}
@property (nonatomic, assign) BOOL bannerIsVisible;
 
- (ADBannerView *)getADBanner;
@end


2. ziAd.m

#import "ziAd.h"
@implementation ziAd
@synthesize bannerIsVisible;

// iAd 배너
 
- (ADBannerView *)getADBanner
{
    adBanner = [[ADBannerView alloc] initWithFrame:CGRectZero];
 
    [adBanner setRequiredContentSizeIdentifiers:
 
    [NSSet setWithObjects:ADBannerContentSizeIdentifierPortrait, nil]];
 
    [adBanner setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait];
 
    [adBanner setFrame:CGRectMake(0, 410, 320, 50)];
 
    [adBanner setDelegate:self];
 
    self.bannerIsVisible = NO;
 
    return adBanner;       

}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner

{
    if(!self.bannerIsVisible)
 
    {
        [UIView beginAnimations:@"animateBannerAppear" context:nil];
 
        [adBanner setFrame:CGRectMake(0, 410, 320, 50)];
        [UIView commitAnimations];
 
        self.bannerIsVisible = YES;
 
    }
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
 
     if(self.bannerIsVisible)
 
    {
        [UIView beginAnimations:@"animateBannerOff" context:nil];
 
        [adBanner setFrame:CGRectMake(041032050)];
        [UIView commitAnimations];
 
        self.bannerIsVisible = NO;
 
    }
}
@end
// iAd 배너


3. 호출..

#import "ziAd.h"

- (void)viewDidLoad
{
    //iAd
    [self.view addSubview: [[[ziAd alloc]init] getADBanner]];
    [super viewDidLoad];
 
}

//viewWillAppear 에 올리는 방법이 더 좋다고 해서 DidLoad 에서 지웠습니다.

-(void)viewWillAppear:(BOOL)animated
{  
     [self.view addSubview: [[[ziAd alloc]init] getADBanner]];

}


 


Posted by Sungyoup Han matrim

이런저런 테스트를 하며 어플 하나 만들어 보다 보니..
암호를 입력하여 기능 잠금을 해야 하는 부분이 있어서 뒤적거려 봤습니다.

일단은.. TextField 에 번호를 입력 하는데, 보여지면 안되겠지요?

그래서 찾아봤더니, textField 의 메소드 중 setSecureTextEntry 라는 녀석이 있더군요.
넘기는 인자를 YES 로 넘겨주면 알아서 변환해 줍니다.

//숫자 대신 안보이는 점으로 변환

    [textField setSecureTextEntry:YES];




textField 에 글자 길이 지정해 주는 부분도 있긴 하지만..
개인적으로 사용하진 않았구요.. edit changed 이벤트를 사용해봤습니다.
무슨 이유인지 모르겠지만, setSecureTextEntry 와 함께 사용하기 좋더군요.

그럼 또.. 별거 아닌거 알아내려 갑니다.. ㅎㅎ :)
 
Posted by Sungyoup Han matrim

[참고: http://eureka.ykyuen.info/2010/04/02/objective-c-convert-nsstring-to-int-and-vice-vesa/]

변수 값 스트링을 인티저로.. 인티저를 스트링으로 바꿔주는 방법입니다.
많이 사용하는 값 형변환.. :) 입니다.

1. NSString -> int 변환 

NSString *NumberString = @"209384029384023948";
int i = [NumberString intValue];



2. int -> NSString 변환 

int aNumber = 209384029384023948;
NSString *aString = [NSString stringWithFormat:@"%d", aNumber];



 
Posted by Sungyoup Han matrim

어떤 개발을 하던지..
디버그 나 이벤트 관련 테스트 로는 알럿창 띄워 테스트 하는게 가장 보편적이지요.
그래서 버릇 처럼 알럿창을 제일 번저 띄워봤습니다. ㅎㅎ 
(참고 싸이트 : http://snipplr.com/view/42990/ )




1. alert 1

-(void)alertAndControl

{

    UIAlertView *alert = [[UIAlertView alloc]init];

    alert.message = @"hello";

    [alert addButtonWithTitle:@"OK"];

    [alert show];

}


alertAndControl 함수를 이벤트 시 호출해 주면 띄용~ 하고 뜹니다. ㅎㅎ
근데 이벤트 테스트 말고, 디버그는 NSLog 로 많이 사용하게 되더군요. ㅎㅎ


2. alert 2

UIAlertView *alert2 = [[UIAlertView alloc]

    initWithTitle:@"Do you really want to start the End of World?"

                          message:nil

                          delegate:self

    cancelButtonTitle:@"No, cancel Red Day"

    otherButtonTitles:@"Yes, initia", nil];

    [alert2 show];



이건 버튼 추가된 알럿입니다. 

3. alert 3 - alertView.tag 사용하기

alertView.tag 를 사용하게 되면.. 지정해준 tag 에 따라 action 을 부여할 수 있더군요.

메소드 호출 시 넘긴 값들은 
@"Lock Player Changes" :@"아줌마 잠그실꺼에요?" :1
요로케 입니다.

-(void)alertAndControl:(NSString *)alertTitle :(NSString *)alertMessage :(int)tagNo
{
    UIAlertView *alert = [[UIAlertView alloc]
 
                          initWithTitle:alertTitle
                          message:alertMessage
                          delegate:self
 
    cancelButtonTitle:@"아니오"
 
    otherButtonTitles:@"", nil];
 
    alert.tag = tagNo;    
    [alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch (alertView.tag) {
        case 1:
            //1 태그 알럿 :)
            switch (buttonIndex) {
                case 1:
                    if ( nextView != nil)
                    {
                        [[parentView navigationController] pushViewController:nextView animated:YES];
 
                    }
                    break;               

                default:
                    break;
            }
            break;
        case 2:
            //2 태그 알럿 :)
            break;
        default:
            break;
    }
}



 이렇게요. 여기서 "예" 를 누르게 되면 nextView 화면으로 전환되게 코딩이 되어 있지요?
쩌업 편하네요
조금 더 작업하여 버튼까지 구현하면 완성이 될 듯 싶습니다.

Posted by Sungyoup Han matrim


1. iOS 내부에서 작동하는 링크 코드 입니다.
itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=1234567890

2. PC 에서 작동하는 링크 코드입니다. 
https://userpub.itunes.apple.com/WebObjects/MZUserPublishing.woa/wa/addUserReview?id=1234567890&type=Purple+Software

 
Posted by Sungyoup Han matrim