2013-01-20 86 views
1

我有以下中的xcode一段代碼,想檢查「鏈接」,它是一個局部對象「ReaderDocumentLink *鏈路」中所聲明的for循環的內容,並我在 處設置斷點「result = [self annotationLinkTarget:link.dictionary];」如下面顯示:如何查看xcode的調試器的局部變量/對象內容

-(id)singleTap:(UITapGestureRecognizer *)recognizer 
{ 
    id result = nil; // Tap result object 

    if (recognizer.state == UIGestureRecognizerStateRecognized) 
    { 
     if (_links.count > 0) // Process the single tap 
     { 
      CGPoint point = [recognizer locationInView:self]; 

      for (ReaderDocumentLink *link in _links) // Enumerate links 
      { 
       if (CGRectContainsPoint(link.rect, point) == true) // Found it 
       { 
        result = [self annotationLinkTarget:link.dictionary]; 
        break; 
       } 
      } 
     } 
    } 

    return result; 
} 

我試過「寶鏈接」,這是行不通的。 (它會報告如下錯誤:

錯誤:「鏈接」具有未知類型;將它轉換爲它聲明的類型使用它

錯誤:1個錯誤解析表達式

所以,我該怎麼辦打印出

回答

1

Xcode中添加日誌斷點的概念。這是OP要求的。而且他正在遇到最大的停頓點之一:po必須在具有描述方法的某種類型上進行鬆動。由於這個原因,我不會使用這些:你想要檢查的代碼中仍然有太多的整型。

您可以將該項目變爲斷點內的對象,但這也是一個麻煩, [NSNumber numberWithFloat:5.5]然後po那個。

鏈接應該在這裏工作。也許你正在試圖在一個超出範圍的行上做po?

+0

非常感謝您的幫助。非常有見地。我遵循你的建議,並進入斷點線。 「link.dictionary」成爲annotationLinkTarget中的annotationDictionary。所以我「po annotationDictionary」,這次沒有任何錯誤,但我只獲得以下信息:(CGPDFDictionaryRef)$ 26 = 0x0000806b [沒有Objective-C描述可用]。我想知道是否有方法在調試器控制檯中打印出這個annotationDictionary的內容?再次感謝你的幫助。 –

+0

我沒有倒下,但發現很難理解。 – MCKapur

+0

是你的班級嗎?提供描述的實現,你應該看到它。很高興幫助,保羅。 – Rob

0

無論NSLog在「鏈接」對象的細節?包括link.dictionary的內容爲好。謝謝。的ReaderDocumentLink

每個屬性或ovveride的description mdth OD在ReaderDocumentLink和使用NSLog(@"%@",link):

0

我同意羅布的事實,在這裏它應該工作。

但是我看到奇怪的事情發生在'po',尤其是「點語法」。
所以,如果你試圖po link.dictionary,但失敗 我建議做po [link dictionary];不管有沒有「;」我不認爲這有什麼區別。我不知道爲什麼有時候點語法可以完美地工作,而其他時候卻不會)

另外我見過時間如果我在「po」中犯了一個錯字,並收到一條錯誤消息,不管是什麼我會嘗試「失敗」後失敗,所以添加命中繼續(或殺死我不記得的應用程序)並再次進入該斷點。

過程,並確保你正在做的「寶」,而link在範圍內。

如果沒有任何工作嘗試關閉Xcode,有時它的解決方案。

相關問題