iOS精华iOS开发技术分享iOS Developer

iOS10.3新特性

2017-03-30  本文已影响205人  i_belive

iOS10.3 正式版本发布,其中将文件系统改为APFS,在文件存储方面确实释放了不少空间,对于开发者10.3又有那些变动呢?

#import <StoreKit/StoreKit.h>

- (IBAction)makeReview:(id)sender {
    [SKStoreReviewController requestReview];
}
Paste_Image.png

考虑到兼容问题,修改代码如下:


-(void)showReviewWithAppId:(NSString *)appId{
    Class clazz = NSClassFromString(@"SKStoreReviewController");
    if(clazz != nil){
        //iOS10.3 应用内打开
        [SKStoreReviewController requestReview];
    }else{
        //跳转到AppStore评论页面
        NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@?action=write-review", appId];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    }
}

iOS10.3修改APP图标主要Api为:

- (void)setAlternateIconName:(nullable NSString *)alternateIconName completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler 

除了使用此方法外,还需要在Info.plist中添加配置,配置说明

Paste_Image.png

实际步骤如下:
1、添加AppIcon,记录图片名字Bitmap(随意名字,记录下即可)

Paste_Image.png Paste_Image.png

2、修改info.plist文件

Paste_Image.png

info.plist源文件如下:

    <key>CFBundleIcons</key>
    <dict>
        <key>CFBundleAlternateIcons</key>
        <dict>
            <key>BitmapNew</key>
            <dict>
                <key>CFBundleIconFiles</key>
                <array>
                    <string>BitmapNew</string>
                </array>
                <key>UIPrerenderedIcon</key>
                <false/>
            </dict>
        </dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>Bitmap</string>
            </array>
        </dict>
    </dict>

说明:CFBundlePrimaryIcon中的Bitmap即为之前记录的图片名称,BitmapNew 是我的用于替换原生图标的图片资源。文件名需要和 info.plist 中保持一致(注意 info.plist 中用到了两次 "BitmapNew"),同时这也是你在代码中设置图标时,需要给 API 传入的参数。同样是 60pt@2x 和 60pt@3x 的图片资源,文件不通过 Assets.xcassets 添加进来,而是直接放到目录中

Paste_Image.png

如果你需要支持 iPad,建议这里使用 83.5pt(iPad Pro)的图片资源。另外还有些其他关于在 iPad 上替换图标的注意事项,在这里有说明,注意我们这里在 info.plist 里面所用的 key 是CFBundleIcons
,还有另外一个 key 是 CFBundleIcons~ipad

3、编写修改图标代码:

/**
 修改App图标

 @param imageName 图片名称,nil:表示还原主图片
 */
-(void)changeAppIconWithName:(NSString *)imageName{
    if([[UIApplication sharedApplication] supportsAlternateIcons]){
        NSLog(@"支持更换图标");
    }else{
        NSLog(@"不支持更换图标");
        return;
    }
    NSString *alternateIconName = [UIApplication sharedApplication].alternateIconName;
    if(alternateIconName == nil){
        [[UIApplication sharedApplication] setAlternateIconName:imageName completionHandler:^(NSError * _Nullable error) {
            if(error){
                NSLog(@"%@",error);
            }
        }];
    }
}
Paste_Image.png

苹果文件系统(英语:Apple File System,简称APFS)是一个适用于macOS、iOS、tvOS和watchOS的文件系统。它的目的是解决现今使用[HFS+文件系统的核心问题。
APFS为闪存和固态存储设备优化,具有写入时复制等设计特点,使用I/O合并改进性能。

* 克隆

克隆可以使文件系统快速、高效地在同个卷上复制文件,且不须占用额外存储空间。对数据的修改将写入其他位置,未修改的块则继续共享使用。对文件的更改将保存为克隆文件的差异,减少文档修订和复制所需的存储空间。
* 快照
APFS支持创建特定时间点、文件系统只读实例的快照
* 加密
APFS将实现文件和敏感元数据的磁盘加密。它对一个容器中的每个卷支持下列加密模型:
- 不加密
- 单密钥加密
- 多密钥加密,每个文件使用单独的密钥加密,元数据再使用另一个密钥加密

上一篇 下一篇

猜你喜欢

热点阅读