我搜索了各种来源,但找不到一个清晰而简单的解决方案来为 iOS 应用程序使用 Xcode 8.3 在 Swift 3 中创建单选按钮组的等效项。
例如,如果一组有 3 个按钮,一次只能选择一个。目前,我通过在选择另一个按钮时将组中 2 个按钮的状态更改为未选择来实现此目的,反之亦然。
@IBAction func buttonA(_ sender: Any) {
buttonB.isChecked = false
buttonC.isChecked = false
}
@IBAction func buttonB(_ sender: Any) {
buttonA.isChecked = false
buttonC.isChecked = false
}
@IBAction func buttonC(_ sender: Any) {
buttonA.isChecked = false
buttonB.isChecked = false
}
Run Code Online (Sandbox Code Playgroud)
不过,我希望有一种更有效的方法来做到这一点。
任何有关更有效解决方案的帮助将不胜感激。
我正在使用Firebase FCM从iOS设备发送推送通知。推送通知确实有效,直到昨天。
现在,当我发送推送通知时,一切都显示成功,但是设备上什么也没收到。
如果我直接通过curl请求发送,这是响应:
{"multicast_id":7815294000653973158,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1510474219556035%ca9ff0f8ca9ff0f8"}]}
Run Code Online (Sandbox Code Playgroud)
如果我是从Firebase控制台上的“通知”仪表板发送的,则表明已成功完成。
我已完成以下操作,但未成功:
使用Firebase(4.5.0)使用FirebaseAnalytics(4.0.4)使用FirebaseAuth(4.3.1)使用FirebaseCore(4.0.10)使用FirebaseFirestore(0.9.1)使用FirebaseInstanceID(2.0.5)使用FirebaseMessaging(2.0.6)
Messaging.messaging().shouldEstablishDirectChannel = true按Firebase通知进行设置在iOS 11中不起作用我的设置:我在重写init()方法的AppDelegate文件中调用FirebaseApp.configure():
override init() {
super.init()
FirebaseApp.configure()
}
Run Code Online (Sandbox Code Playgroud)
在AppDelegate中,didFinishLaunchingWithOptions:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// get push notification token id for user
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = …Run Code Online (Sandbox Code Playgroud)