ios 技巧总结(不断更新)

1.  数据格式化输出   1000000 -> 1,000,000

  1. 数据格式化输出   1000000 -> 1,000,000
  2. NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
  3. [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
  4. NSString *numberString = [numberFormatter stringFromNumber:@(1000000)]; 
  5. _salesCountLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Yesterday you sold %@ apps", nil), numberString]; 

 

2. 

方式一:跳转打开

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];

方式二:应用内打开

    通过Modal view方式弹出App Store商品详情页面。我按照文档说明,写了个例子。部分代码如下: 

- (void)openAppWithIdentifier:(NSString *)appId {
    SKStoreProductViewController *storeProductVC = [[SKStoreProductViewController alloc] init];
    storeProductVC.delegate = self;
    
    NSDictionary *dict = [NSDictionary dictionaryWithObject:appId forKey:SKStoreProductParameterITunesItemIdentifier];
    [storeProductVC loadProductWithParameters:dict completionBlock:^(BOOL result, NSError *error) {
        if (result) {
            [self presentViewController:storeProductVC animated:YES completion:nil];
        }
    }];
}

另外,需要实现SKStoreProductViewControllerDelegate如下代理方法:

#pragma mark - SKStoreProductViewControllerDelegate
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [viewController dismissViewControllerAnimated:YES completion:^{
        [viewController release];
    }];
}

可以这样调用:

[self openAppWithIdentifier:@"383037733"];

这段代码即实现了上面图示的效果。

 

注:项目需要添加StoreKit框架,仅在iOS 6.0以上的设备中支持上述实现。

Framework	
/System/Library/Frameworks/StoreKit.framework
Availability	
Available in iOS 6.0 and later.

 

 

如果需要兼容6.0以下的设备,可以使用下面的代码(这种方式会跳出当前应用):

 

- (void)outerOpenAppWithIdentifier:(NSString *)appId {
    NSString *urlStr = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8", appId];
    NSURL *url = [NSURL URLWithString:urlStr];
    [[UIApplication sharedApplication] openURL:url];
}
-——————————————————————————————
-——————————————————————————————

3. 

iOS 应用中打开其他应用 (转)

 

 

我们来讨论一下,在iOS开发中,如何实现从app1打开app2。

基本的思路就是,可以为app2定义一个URL,在app1中通过打开这个URL来打开app2,在此过程中,可以传送一些参数。下面来讨论一下具体的实现过程。

 

2. 在app1的代码中打开刚才定义的URL,代码如下:

 

 

    NSURL *url = [NSURL URLWithString:@"myapp://test?para1=1¶2=2"];  
    [[UIApplication sharedApplication] openURL:url];  

 

  当然,这个URL的形式可以是其他形式的,只要以"myapp://"开始即可。

 这样,就可以在app1中打开app2.

 打开之后,会调用app2的AppDelegate的

 

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation   

由于URL是自己定义的,所以会存在URL重复的情况。经过测试发现,如果试图打开这个URL,那么会打开先安装的那个应用。

 

posted @ 2014-12-12 14:07  lee4519  阅读(149)  评论(0编辑  收藏  举报