반응형


iOS9 부터는 사용하지 못하는 UIAlertView

대신에 사용하는 UIAlertController 에 대해 알아봤습니다. 아래 링크에 샘플코드가  나와 있습니다.

http://rhammer.tistory.com/64

위에 소개된 샘플코드를 가지고 개인적으로 필요하여 아래 깃헙에 바꿔서 공유했습니다.

https://github.com/youp-han/AlertSampleInObjectiveC


반응형
반응형


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;

    }

)


반응형
반응형


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]; }

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

반응형
반응형


참고 : http://www.raywenderlich.com/5492/working-with-json-in-ios-5


기본적인 컨셉은 위 링크에서 익혔고..


실질적인 iOS7 에서의 코딩은 아래 링크를 보고 연습했습니다.


따라하기 : http://thedarkdev.blogspot.com.au/2013/09/web-service-apps-in-ios7-json-with.html


좀더 잘 설명되어 있는 곳 : http://dadabeatnik.wordpress.com/2013/11/01/parsing-json-in-ios/


JSON data in table formatJSON data



좀더 정리되면 포스팅 업데이트 하도록 하겠습니다.

반응형
반응형


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


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


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


반응형
반응형


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


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

Deserialize from JSONSerialize to JSON


반응형
반응형

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

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



SimpleTable App

반응형
반응형



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

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


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


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


반응형
반응형

The current deployment target does not support automated __weak references


iOS 5.0 이상에서 지원하는 ARC 를 사용하여 어플을 만들다 보니 ARC 는 무척 편하더군요. 근데 iOS5.0 이전 버전들을 지원하려면 어떻게 해야 할까 고민하다 인터넷을 뒤져보니.. 어느 멋진 분이 벌써 만들어놨네요. 


PLWeakCompatibility 를 다운받아 압축을 풀고



  1. PLWeakCompatibilityStubs.m 이 파일을 프로젝트에 넣어주세요 (전 h 파일도 같이 넣어줬어요)
  2. 그리고 xCode Target Settings 에 있는 Other C Flags 값을 -Xclang -fobjc-runtime-has-weak 로 바꿔주시면 됩니다.



타겟 클래스에 -release 와 -dealloc 을 적절히 섞어 넣어 주는 형식이라고 합니다. 디폴트로 PLWeakCompatibility 는 __weak 핸들링을 위해 MAZeroingWeakRef 를 사용합니다. MAZeroingWeakRef 를 사용하고 있다면, 있는걸 쓰겠지만, 없다면 내부적으로 알아서 처리하기 떄문에 뭐 그것도 상관은 없다고 하네요.


테스트 해보니 일단 위의 오류들은 깨끗하게 없어지네요. 작동을 잘 한다는 뜻이겠지요?


반응형
반응형

[출처: http://stackoverflow.com/questions/6101286/making-a-button-call-a-phone-number-in-xcode ]

어플 내에서 버튼을 누르면 특정 전화번호로 전화를 걸어야 하는 기능이 들어가야 해서.. 찾아보니

아래와 같이 구현하면 바로 되네요.. 대신 전화번호 스트링의 형식이 있어요..

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:PhoneNo]]; 

PhoneNo 는  @"tel:2135554321"

이렇게 넘겨야 하는군요. 중간에 " - " 이 있어도 되구요. 제가 테스트 한 번호는..


@"tel:010-222-3333" 입니다. 

-(void)PhoneCall:(NSString*)PhoneNo{
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:PhoneNo]];
}    

반응형

+ Recent posts