如何以编程方式检索 icloud 容器名称?

How do I programmatically retrieve the icloud container name?

要创建 GKGameSession 我需要传入 iCloud 容器名称。

+ (void)createSessionInContainer:(NSString *)containerName 
                   withTitle:(NSString *)title 
         maxConnectedPlayers:(NSInteger)maxPlayers 
           completionHandler:(void (^)(GKGameSession *session, NSError *error))completionHandler;

虽然我知道通过导航到功能页面在 xCode 中找到容器名称的位置,虽然我知道默认格式是 iCloud.$(CFBundleIdentifier) 但我对如何以编程方式找到容器名称感到困惑容器名称。

我没有将其视为 info.plist 文件中的条目。虽然我可以使用默认格式重建它,但如果我不使用默认容器名称怎么办?我真的必须 #define 字符串吗?

以编程方式查找默认容器的 ID:

#import <CloudKit/CloudKit.h>
CKContainer *defaultContainer = [CKContainer defaultContainer];
NSLog(@"default container ID: %@",defaultContainer.containerIdentifier);