我正在尝试按推送通知的示例 https://firebase.google.com/docs/cloud-messaging/ios/client
我在appDelete.swift上遇到问题 例如
if (length && $(this).text().search(new RegExp($(filter).val(), "i"))
}
错误是
方法'applicationReceivedRemoteMessage(remoteMessage :)'与协议'FIRMessagingDelegate'('applicationReceivedRemoteMessage')所需的参数名称不同
我在屏幕上出现以下错误
我也有以下cocopods
Sub avarage()
Range("A2:C6").AutoFilter
ActiveSheet.Range("$A$2:$C$6").AutoFilter Field:=3, Criteria1:="Yes"
Range("B7").FormulaR1C1 = "=MIDDEL(R[-5]C:R[-1]C)"
Range("B7").Font.Bold = True
End Sub
有人能告诉我哪里出错了吗?我看到了项目fcm示例,当我编译一切都没问题时。
答案 0 :(得分:1)
问题是您正在查看的示例代码位于Swift 2.3中,而您的项目位于Swift 3.0中。
有几种方法可以解决这个问题:
继续使用swift 2.3。您可以转到项目,选择Build Settings
并将使用旧版Swift语言版更改为是。
让Xcode自动为您更新。您可以转到编辑>来执行此操作转换>当前的Swift语法...... ,它应该有希望解决你所看到的问题。
手动更新代码。正如您所看到的,Xcode通常知道更新的代码是“应该”的,但是看起来像给你麻烦的方法可以更新为看起来像这样的东西:
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if #available(iOS 10.0, *) {
let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: {_,_ in })
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
// For iOS 10 data message (sent via FCM)
FIRMessaging.messaging().remoteMessageDelegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
FIRApp.configure()
// Add observer for InstanceID token refresh callback.
NotificationCenter.default.addObserver(self,
selector: #selector(self.tokenRefreshNotification),
name: NSNotification.Name.firInstanceIDTokenRefresh,
object: nil)
return true
}
Bug Firebase示例代码告诉他们,“嘿!您忘了将此示例更新为Swift 3.0!”幸运的是,我能够做到这一点,所以现在就告诉他们。 :)