2013-04-21 175 views
1

我已將Google Plus iOS SDK v1.2.1集成到我的iOS應用程序中。驗證後,我試圖獲取用戶的活動提要。我的代碼如下:訪問GTLPlusActivity屬性

GTLServicePlus* plusService = [[GTLServicePlus alloc] init]; 
    [plusService setAuthorizer:[GPPSignIn sharedInstance].authentication]; 
    plusService.retryEnabled = YES; 

    GTLQueryPlus *query = [GTLQueryPlus queryForActivitiesListWithUserId:@"me" collection:kGTLPlusCollectionPublic]; 

    [plusService executeQuery:query 
      completionHandler:^(GTLServiceTicket *ticket, 
           GTLPlusActivityFeed *data, 
           NSError *error) { 

       for (GTLPlusActivity *activity in data.items) { 

        // ITERATE THROUGH THE ACTIVITIES 

        NSString *publishedDate = activity.published; <---- ERROR 

        // "PROPERTY 'published' CANNOT BE FOUND 
        // IN FORWARD CLASS OBJECT "GTLPLusActivity"" 
        // WHY ARE THE VARIABLES SUCH AS published, placeName, 
        // title, actor etc NOT ACCESSIBLE 
       } 

      }]; 

我能夠成功檢索用戶的帖子。該GTLPlusActivity類有許多屬性,顯示的圖像:

enter image description here

每當我嘗試使用訪問屬性中的「」運算符(如for循環中的「activity.actor」),它會給出錯誤"Property 'actor' cannot be found in forward class object 'GTLPlusActivity'"。爲什麼我無法訪問這些屬性?我需要在UITableView中顯示它們。

編輯:代碼快照。錯誤顯示在紅色。

enter image description here

回答

3

首先,檢查錯誤狀態,並確保錯誤代碼是零。我已經嘗試了你的代碼,並且它在我的結尾正常工作,所以最有可能的是,你迴應的響應存在問題。通常activity.actor將返回一個GTLPlusActivityActor。

試着這麼做:

if (error) { NSLog(@"Status: Error: %@", error); } else <Do stuff>

編輯:另外,我們的iOS的快速啓動是看我們如何處理代碼的某些部分的重要資源。 ListMoments位與處理活動非常相似。 https://developers.google.com/+/quickstart/ios

編輯2:此外,請確保您有所有正確的進口。嘗試

#import "GTLPlusActivity.h" 

#import "GTLPlus.h" 
+0

的問題不在於我不能夠得到職位。我沒有收到任何錯誤。問題是我無法訪問「GTLPlusActivity」類屬性。我添加了一個編輯來更好地解釋它。 – 2013-05-05 06:50:06

+0

在我的問題中編輯for循環中的代碼框。正如您所看到的,我正在嘗試訪問每個活動的發佈日期。但它給出了一個錯誤。它說,即使類聲明明確列出所有屬性,也不能找到類「GTLPlusActivity」的已發佈屬性(以及所有其他屬性)。 – 2013-05-05 06:59:39

+0

哦 - 我想你錯過了進口。我會編輯我的答案。 – Joanna 2013-05-06 18:21:38