아이폰 앱 다운로드 링크


NSURL *appStoreURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id123456789"];

[[UIApplication sharedApplication]openURL:appStoreURL];


참고

http://stackoverflow.com/questions/433907/how-to-link-to-apps-on-the-app-store

Posted by hyshin

API를 통해 JSON 데이터를 받아

version의 NEWIVERSION을 찾아 NSUserDefaults에 값을 저장하는 로직입니다.


    NSString *ver = [[mainInfoDict objectForKey:@"version"] objectForKey:@"NEWIVERSION"];

    if (ver != nil) {
        [[NSUserDefaults standardUserDefaults] setObject:ver forKey:@"NEWIVERSION"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

그런데 API에 문제가 생겨 NEWIVERSION을 가져오지 못하게 되자

시뮬레이터에서 App이 죽는 현상이 발생하더군요.


Attempt to set a non-property-list object null as an NSUserDefaults/CFPreferences value for key NEWIVERSION

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object null for key NEWIVERSION'


NEWIVERSION key를 갖는 값 자체가 존재하지 않다 보니

Null 객체 insert 오류가 생겼던 거 같습니다.


그래서 NSNull 객체 검사를 추가해 봤습니다. 


    NSString *ver = [[mainInfoDict objectForKey:@"version"] objectForKey:@"NEWIVERSION"];

    if (ver != nil &&
        ![ver isEqual:[NSNull null]]) {
        [[NSUserDefaults standardUserDefaults] setObject:ver forKey:@"NEWIVERSION"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }


이렇게 처리하고 나니 API에서 오류가 발생해도 App 중지 없이 실행할 수 있었습니다.



Posted by hyshin