(참고: http://ios-blog.co.uk/tutorials/quick-tips/quick-tip-converting-nsstring-to-nsdata/ )


NSString 변수를 NSData 변수로 값타입 변환하는 방법입니다.

jSon 의 serialization 을 하기 위해선 값 타입을 바꿔서 사용해야 하는경우가 있습니다.



NSString 에서  NSData 로 변환


NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding];


//null 인경우를 대비해서 아래와 같이 적어줍니다.\0 바이트를 없애주는 라인입니다.

// 개인적으로는 잘 사용하지는 않고 있습니다. 

data = [data [subdataWithRange:NSMakeRange(0, [json length]-1)]];


   

NSData 에서 NSString 로 변환


NSString* newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


혹은


NSString* newStr2 = [NSString stringWithUTF8String:[data bytes]];



저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


NSArry 내에 있는 내용을 NSLog 로 찍어 보려고 할때 간단하게 2 가지 방법이 있습니다.


1) NSLog(@"shopDetail = %@", shopDetail);


2) for 루핀 사용하기         

for (NSString *str in shopDetail) {

    NSLog(@"shopDetail = %@", str);

}


1) 번을 사용하든, 2)번을 사용하든 결과물은 같습니다.

2015-07-07 23:49:11.250 redCat[1471:24953] shopDetail = (

        {

        address = "XXXXX@gmail.com";

        businessHour = "11:00(11AM) ~ 20:00(8PM), \Uc2e0\Uc815,\Uad6c\Uc815\Uc5f0\Ud734,\Ucd94\Uc11d\Uc5f0\Ud734,\Ud06c\Ub9ac\Uc2a4\Ub9c8\Uc2a4\Ub0a0\Uc740 \Uc27d\Ub2c8\Ub2e4.";

        city = "\Uc11c\Uc6b8";

        country = "South Korea";

        description = "XXXXX @Apkoojung";

        latitude = "37.523809";

        lin2 = "\Uc6cc\Ud130\Uc2a4\Ud2b8\Ub9ac\Ud2b8";

        line1 = "\Uac15\Ub0a8\Uad6c \Uc2e0\Uc0ac\Ub3d9 550-14 1\Uce35";

        longitude = "127.024297";

        name = "\Uc555\Uad6c\Uc815\Uc810";

        number = "+82-2-111-ZZZZ";

        seqNo = 2;

        shopCode = 002;

    }

)


저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


UIWebview 를 사용하여 iOS 앱 화면에 모바일웹 화면을 띄우는 방법은 간단합니다.

스토리 보드를 이용한 방법이 아래 링크에 잘 나와있습니다. 소스 코드만 봐도 간단하지요?

- (void)viewDidLoad

{

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    [self goToURL:@"https://mobile.twitter.com/waterstreetjr"];

}


// displays the URL

-(void)goToURL:(NSString*) fullURL{

    NSURL *url = [NSURL URLWithString:fullURL];

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

    [_webView loadRequest:requestObj];

}


이렇게 UIWebview 를 만들고 나서...


1. 화면이 나오면 로딩이 끝날 때까지 흰색화면으로 남게 되는데요, 음.. 아래 그림처럼 로딩 이미지가 떠주면 어떨까 싶어서 추가해봤습니다.



#import <UIKit/UIKit.h>


@interface HomeViewController : UIViewController<UIWebViewDelegate>

{

     UIActivityIndicatorView* loadingIndicator;

}

@property (weak, nonatomic) IBOutlet UIWebView *webView;

@property (strong, nonatomic) UIActivityIndicatorView *loadingIndicator;


-(void)goToURL:(NSString*) fullURL;

@end


- (void)viewDidLoad

{

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    [_webView setDelegate:self];

    [self addLoadingIndicatorToView];

    [self goToURL:@"https://mobile.twitter.com/waterstreetjr"];

}


// add loading indicator

-(void)addLoadingIndicatorToView{

    loadingIndicator= [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

    [loadingIndicator setCenter:CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2)];

    [self.view addSubview:loadingIndicator];


}


// displays the URL

-(void)goToURL:(NSString*) fullURL{

    NSURL *url = [NSURL URLWithString:fullURL];

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

    [_webView loadRequest:requestObj];

}


- (void)webViewDidStartLoad:(UIWebView *)webView{

    NSLog(@"webViewDidStartLoad");

    [loadingIndicator startAnimating];

}


- (void)webViewDidFinishLoad:(UIWebView *)webView{

    NSLog(@"webViewDidFinishLoad");

    [loadingIndicator stopAnimating];

}


- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{

    NSLog(@"didFailLoadWithError");

}


동작이 잘 되는 부분은 확인 해 봤습니다. 


2) 로딩 화면이 보이지 않고, 로딩이 끝난 후에 보여지면 어떨까 생각해봤습니다. 예를 들면 테이블 뷰가 나오고 그 중에서 다음 화면이 웹뷰인 셀이 있습니다. 눌렀을 시 UIwebview 로 넘어갈 때 로딩이 끝난뒤 넘어가게 할 수도 있습니다.



넘어가기 전 테이블 뷰에서 다음 화면인 웹 뷰로 가는 셀을 터치 했을 경우, pushViewController 를 부르기 전에, 웹뷰 를 미리 로딩을 할 수 있도록 합니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // check indexPath... myWebView = [[MyWebViewController alloc] init]; myWebView.delegate = self; [myWebView preLoadView]; }

웹뷰가 로딩이 끝나면 다음 화면으로 뷰가 넘어가게 됩니다.

- (void)webViewDidFinishLoad:(UIWebView *)webView { [self.navigationController pushViewController:myWebView animated:YES]; [myWebView release]; }

아직 테스트 된 코드는 아니지만, 실제 코드 적용 과 함께 테스트 후 영상을 올리도록 하겠습니다. 

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


Yosemite 업그레이드 하고 테스트 하다 항상 사용하는 parallels 가 작동하지 않아 부득이 하게 Mavericks 로 다시 내려왔습니다. 다운그레이드 이후 
여러가지 느림 현상 때문에 중요한 파일 몇개 빼고 다시 포멧 후 설치를 하게 되었습니다. 그러면서 안쓰는 앱들 정리하게 되었는데요, 아래 리스트는 제가 항상 설치하며 사용중인 앱 리스트입니다.
 


  1. iMovie : 간단한 동영상 제작앱입니다.. 여행 다녀와  짧은 동영상 만들기 딱 좋은 앱이라 자주 사용하는 편입니다.
  2. iPhoto : 아이폰 사진 동기화 하는 앱으로만 사용중입니다.
  3. Archy : 구글 Docs 를 접속을 브라우저 없이 앱안에서 사용할 수 있어서 애용하는 앱이지요.
  4. Backup to go : 리뷰를 보니 정말 유용한 듯.. 필수 목록에 일단 담아봤습니다. 꼭 사용해보고 싶은 앱
  5. Balsamic mockup : 간략한 화면 기획 할 때 회의에서도, 개인적으로도 아이디어 정리할 때 편리하네요.
  6. Caffeine : 자주 화면이 어두워지는 맥을 위해 카페인을 타먹여 항시 화면이 켜있게 해주는 앱.. :)
  7. Calendar : 상당 바에 올라가 있으며 화면을 크게 차지 하지 않아 스케줄 확인할 때 사용합니다. [이전리뷰] 2011/03/15 - 01. #Calendar 맥 어플 리뷰 #macApp 
  8. Calibre : kindle 구입후 설치한 앱입니다
  9. Dropbox : drobox 동기화 필수 앱이죠? Dropbox 서비스 사용을 위해 필수는 아니지만 있음 좋은 앱
  10. Evernote : 언제부터인지 사용안하는 에버노트. 하지만 이전 데이터 검색을 위해 설치해둡니다.
  11. Forklift어둠의 경로로 받은 앱인데 넘 유용하게 사용중여서 이번 가격다운할 때 구입해버렸습니다.
  12. Gomplayer : Movist 를 주로 사용하지만 간혹, 필요할 듯 싶어 가지고 있는 앱입니다. 없어도 되지만..
  13. Line : 라인 톡을 자주 사용해서 꼭 가지고 있습니다. 베타 때부터 쭈욱 잘 사용중입니다.
  14. Mars edit : 티스토리 글쓰기 에디터가 구릴 때 사용했던 블로그 에디터 입니다. 
  15. Parallels : VM 의 강자죠. 정말 잘 사용중입니다. 멀티 플랫폼 지원안하는 앱을 위해. 필수인 앱. OS 테스트도. :)
  16. Softmatic dockclock : Back to the mac 에서 소개된 dock 에 올라가는 시계앱. 이뻐서 계속 사용중입니다.
  17. Source tree :  bitbucket GIT 클라이언트. GIT 시작을  bitbucket 으로 하여 그냥 쭉 사용중입니다. 
  18. Sublime text2 : 예전 php 코딩 때 정말 유용하게 잘 사용했던 에디터 입니다. 요즘엔 텍스트 에디터로 사용 중
  19. Unarchiver : 간혹 zip 이 안열릴 때 이 앱을 사용합니다. 더 좋은 압축 앱도 있습니다만.. 
  20. Things : GTD 의 최강자 죠. 아이폰에서 잘 사용중이며, 언젠가는 구입을.. (쿨럭!!)
  21. Transmission : 토렌트 파일 다운을 위해 사용중입니다. 
  22. Trim enabler : SSD 를 위해서 꼭 필요한 앱입니다. 습관처럼 설치되고 있는 앱이죠. 
  23. Twitter : 트위터 클라이언트
  24. Visual paradigm : 이건.. 최근들어 사용중인 UML 툴입니다.
  25. Vox : mp3 player 인데, 상단 바에 컨트롤들이 이쁘게 들어가 넘 좋습니다.
  26. Xcode : objective-c 와 cocos-2dx 개발을 위해 필수였던.. 요즘엔 objective-c 만을 위해 사용 중입니다.
  27. Xmind : 아이디어 정리와 브레인스토밍에 정말 편리한 툴입니다. 
  28. Movist  : 영화 보는데 주로 사용하는 앱입니다.. 참 잘만든 앱인듯.. 팍팍 지원


이 외에도 skitch 나 Skype, KakaoTalk 도 사용중입니다만.. 개인적으로 꼭 사용하는 필수 앱은 아니여서 추가하지 않았습니다. 훨씬 좋은 앱들도 많을듯 싶지만.. 익숙한 앱들만 사용중이여서 다소 다른분들과 다른 내용들도 있을듯 싶네요 :)

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


테이블뷰 리로드시 에니메이션 넣는 방법

참고싸이트 : http://iosdevelopmenttip.blogspot.com.au/2013/01/uitableview-reload-table-view-with.html


//아래 코드를 리로드 하는 부분에 넣으시면 됩니다.
dispatch_async(dispatch_get_main_queue(), ^{
        [UIView transitionWithView:<"TableName">
                          duration:0.1f
                           options:UIViewAnimationOptionTransitionCrossDissolve
                        animations:^(void) {
                            [<"TableName"> reloadData];
                        } completion:NULL];       
    });

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


간단한 로그인 화면 만들기 샘플입니다.


스텝바이스텝 으로 xcode5, ios7 용으로 스토리보드를 이용하여 로그인 화면 만드는 방법이 자세히 나와있습니다.


http://dipinkrishna.com/blog/2013/12/ios-login-screen-tutorial-xcode-5-ios-7-storyboard-json/


저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


iOS 에서 사용할 Json 파서를 찾다 가장 빠르다고 평이 나 있는 JSONKit  찾아 소개합니다.


Objective-C 로 만들어진 json 파서 중에선 가장 빠르고 시리얼라이즈도 가장 바르게 측정되었네요.

Deserialize from JSONSerialize to JSON


저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim

objective-C 로 iOS 에서 xcode 5 로 간단한 테이블 뷰 만드는 방법 설명입니다.

금방 따라할 듯 싶어, 링크만 걸어 둡니다.



SimpleTable App

저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim



폰갭 phoneGap 용 MIT 라이센스 달려나온 push notification 입니다.

하지만 iOS 용만 사용하면 될것 같아서, 참고해 보려고 합니다.


https://github.com/phonegap-build/PushPlugin.git


소스 테스트 이후, git hub 에 따로 iOS 용 공개하려고 합니다. 위의 링크 소스와 같을 듯 싶지서도.. :)


저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim


Failed to build gem native extension


아이폰 개발을 하다보니, 요즘 이쁜 오픈소스 UI 들을 사용하려고 하는데, cocoapods 라는 Gem 을 설치 해야 해서, 사용하고 있는 OS X Mountain Lion (이하 마운틴 라이온) 에 설치하려고 하니 오류가 났습니다. 


Failed to build gem native extension


해결책은 : http://www.zlu.me/blog/2012/02/21/install-native-ruby-gem-in-mountain-lion-preview/ 잘 나와있습니다.


1. xcode 에서 Command Line Tools 를 설치 한다. 




아래 내용은, 터미널 로그를 그대로 스크린 샷을 떴는데요, 

처음에 sudo gem install cocoapods 를 했을 시 나오는 오류입니다.


2. 터미널에서 아래의 명령어를 실행해 줍니다.

ln -s /usr/bin/gcc /usr/bin/gcc-4.2

gcc-4.2 의 sym 링크를 만들어 주는 명령어 입니다.


3. sudo gem install cocoapods 명령어를 재실행 하면 재대로 설치됩니다.




저작자 표시
신고
Creative Commons License
Creative Commons License

posted by youp_han matrim



티스토리 툴바