我正在研究 iOS 多人框架,我对它非常满意。我正在共享一些敏感数据,因此必须进行加密。当我们创建会话时,我们会得到三个选项:
self.session = [[MCSession alloc] initWithPeer:self.myPeerID
securityIdentity:nil
encryptionPreference:MCEncryptionRequired];
Run Code Online (Sandbox Code Playgroud)
MCEncryptionNone
MCEncryptionOptional
MCEncryptionRequired
我阅读了 Apple 指南,但找不到太多相关信息。如果我通过了MCEncryptionRequired
,有人知道它的加密方式是什么吗?谢谢。
我提交给iTunes Connect for Testflight beta测试版的iOS应用程序版本几乎已过期.AFAIK为了延长30天的试用期,我需要再次提交,但增加的构建版本.由于我存档的代码库很久以前,我不想将代码库还原到该版本并再次存档.我只是想知道是否有任何可能的方法来更改已归档的iOS项目的内部版本号.我想再次提交版本1.3.6(1.3.6.8,已经在iTunes Connect中进行beta测试),如下所示.
我在我的应用程序中设置了两个计时器,每隔几秒重复一次.除非是时间使计时器无效,否则一切正常.当手机被锁定时,我想让这些计时器无效,然后在手机解锁时重新创建它们.
我使用通知来实现何时无效/创建计时器.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_willResigneActive:) name:UIApplicationWillResignActiveNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
这是notify_didBecomeActive方法包含的内容:
clockTicker = [[NSTimer scheduledTimerWithTimeInterval: 1
target: self
selector: @selector(showActivity)
userInfo: nil
repeats: YES] retain];
alarmTicker = [[NSTimer scheduledTimerWithTimeInterval: CONST_ALARMTIMER
target: self
selector: @selector(checkAndLaunchAlarm)
userInfo: nil
repeats: YES] retain];
Run Code Online (Sandbox Code Playgroud)
这个notify_willResigneActive方法包含:
if (alarmTicker) {
[alarmTicker invalidate];
[alarmTicker release];
alarmTicker = NULL;
}
if (clockTicker) {
[clockTicker invalidate];
[clockTicker release];
clockTicker = NULL;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我在第二个计时器上调试这个无效时,我得到了错误.奇怪的是,如果我切换定时器的命令(比如首先使clockTicker失效)..我仍然在第二个定时器上得到错误.
我能做错什么?
谢谢,莱昂纳多
Apple文档提到:
Swift的nil与Objective-C中的nil不同.在Objective-C中,nil是指向不存在的对象的指针.在Swift中,nil不是指针 - 它缺少某种类型的值.任何类型的选项都可以设置为nil,而不仅仅是对象类型
以上知识何时有用?在适用的情况下,编译器会自动将Swift nil转换为Objective-C nil,反之亦然吗?