iOS10.3新特性

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

  • 允许 App 内评分及留言

    在 iOS 10.3 中,开发者可以利用新的 API 在 App 内通过弹窗的方式请求用户直接给出评分,不再需要前往 App Store。
    苹果在最新的iOS 10.3的SDK中的StoreKit框架中新增了一个类SKStoreReviewController来专门做这件事情,它只有一个类方法requestReview
#import 

- (IBAction)makeReview:(id)sender {
    [SKStoreReviewController requestReview];
}
iOS10.3新特性_第1张图片
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]];
    }
}

  • 开发者可以随时更新 App 的图标

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

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

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

iOS10.3新特性_第2张图片
Paste_Image.png

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

iOS10.3新特性_第3张图片
Paste_Image.png
iOS10.3新特性_第4张图片
Paste_Image.png

2、修改info.plist文件

iOS10.3新特性_第5张图片
Paste_Image.png

info.plist源文件如下:

    CFBundleIcons
    
        CFBundleAlternateIcons
        
            BitmapNew
            
                CFBundleIconFiles
                
                    BitmapNew
                
                UIPrerenderedIcon
                
            
        
        CFBundlePrimaryIcon
        
            CFBundleIconFiles
            
                Bitmap
            
        
    

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

iOS10.3新特性_第6张图片
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);
            }
        }];
    }
}
iOS10.3新特性_第7张图片
Paste_Image.png
  • APFS

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

  • 特点
* 克隆

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

  • 数据完整性
    APFS利用现代硬件固件中强大的[校验和]和[错误纠正]的优势。为确保[数据完整性],APFS 对元数据采用校验和技术,但未同时对用户数据采用。
  • 崩溃防护
    苹果文件系统被设计为可以免受崩溃带来的数据损失。
  • 限制与不足
    APFS不为用户数据提供校验和,但通过基于元数据的校验和检查来确保数据完整。
    另外,它并不利用易失性存储器可比特寻址这一特性。

你可能感兴趣的:(iOS10.3新特性)