斯威夫特-4
我不明白你为什么会犯这个错误。
我想你不是在用最新的豆荚。
请参阅下面的代码,这些代码是我用来获取google日历事件的。
吊舱:
pod“googleapiclientforrest/calendar”,'~>1.2.1'
pod‘google/signin’,'~>3.0.3'
import UIKit
import GoogleAPIClientForREST
import GoogleSignIn
class ClassForCalEvent: UIViewController, GIDSignInDelegate, GIDSignInUIDelegate {
let eventArray = NSMutableArray()
private let scopes = [kGTLRAuthScopeCalendar]
private let service = GTLRCalendarService()
override func viewDidLoad() {
super.viewDidLoad()
// Configure Google Sign-in.
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().scopes = scopes
GIDSignIn.sharedInstance().signIn()
}
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!,
withError error: Error!) {
if let error = error {
showAlert(title: "Authentication Error", message: error.localizedDescription)
self.service.authorizer = nil
} else {
self.service.authorizer = user.authentication.fetcherAuthorizer()
fetchEvents()
}
}
// Construct a query and get a list of upcoming events from the user calendar
func fetchEvents() {
let query = GTLRCalendarQuery_EventsList.query(withCalendarId: "primary")
query.maxResults = 10
query.timeMin = GTLRDateTime(date: Date())
query.singleEvents = true
query.orderBy = kGTLRCalendarOrderByStartTime
service.executeQuery(
query,
delegate: self,
didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:)))
}
// Display the start dates and event summaries in the UITextView
@objc func displayResultWithTicket(
ticket: GTLRServiceTicket,
finishedWithObject response : GTLRCalendar_Events,
error : NSError?) {
if let error = error {
showAlert(title: "Error", message: error.localizedDescription)
return
}
var outputText = ""
if let events = response.items, !events.isEmpty {
for event in events {
let start = event.start!.dateTime ?? event.start!.date!
let startString = DateFormatter.localizedString(
from: start.date,
dateStyle: .short,
timeStyle: .short)
let dataDic = ["start_Time":startString , "tag":"red", "Event_Name":event.summary!]
eventArray.add(dataDic)
outputText += "\(startString) - \(event.summary!)\n"
print("Output ", startString , event )
}
UserDefaults.standard.set(NSKeyedArchiver.archivedData(withRootObject: eventArray), forKey: "EventArray")
UserDefaults.standard.synchronize()
} else
{
outputText = "No upcoming events found."
}
print("Output Text",outputText)
showAlert(title: "Event Sync Succesfully!", message:"")
}