[IOS]SMS API

내가 부족한 탓이겠지만 직접 필요하지 않으면 개발자 문서를 잘 안살펴 보는 편인데 IOS4.0부터 문자를 보낼수 있는 API가 생겼다는것을 이제야 알았다.
사용법은 메일을 보낼때와 동일한데
MFMessageComposeViewController 의 canSendText를 이용해 메시지를 보낼수 있는 단말기인지 확인하고 body에 전송하고자 하는 메시지를 넣고 presentModalViewController를 이용해 보여주고 숨기면 된다.
 
    if([MFMessageComposeViewController canSendText]){
        NSString *text =@"메시지를 보냅니다.";
        MFMessageComposeViewController *smsController = [[MFMessageComposeViewController alloc] init];
        smsController.delegate = self;

        smsController.body = text;

        [self presentModalViewController:smsController animated:YES];

        [smsController release];

    }else{
        //..보낼수 없을떄의 처리

    }


전송이 끝나면 Delegate 메소드인
-(void)messageComposeViewController:(MFMessageComposeViewController*)controller didFinishWithResult:(MessageComposeResult)result 가 호출됨으로 여기서 전송완료 여부를 판단해서 처리하면 작업이 끝난다.
자세한 내용은 아래를 참고하자.

http://developer.apple.com/library/ios/.........

2011/03/29 12:29 2011/03/29 12:29
tags: ,

IOS 3.0에서 부터는 좌표정보를 주소로 변환하는 기능을 지원한다.

MKReverseGeocoder를 init하면서 CLLocationCoordinate2D를 넘겨주고 start를 하면 delegate를 통해 주소를 변환한다.

MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc] 
                                                                     initWithCoordinate:COORDINATE];	
geocoder.delegate = self; // MKReverseGeocoderDelegate를 상속한 클래스를 지정한다.
[geocoder start];//변환을 시작한다.


MKReverseGeocoderDelegate는 2가지 메소드를 가지는데
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didfindPlacemark:(MKPlacemark *)placemark
가 있다.
didFailWithError는 변환을 실패 했을때 호출되며 didfindPlacemark는 변환을 성공했을때 호출된다. 변환된 주소의 내용은 MKPlacemark 넘어오는데 MKPlacemark의 데이터는 언어설정에 맞추어 데이터를 표시하기때문에 언어에대한 별도의 처리는 하지 않아도 된다.

자세한 내용은 애플의 샘플코드인 CurrentAddress를 살펴보자.
2011/03/02 11:26 2011/03/02 11:26