2012-06-01 83 views
0

在我的應用我收到3個NSLogs如下:找出NSLogs來自哪裏?

AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved 
2012-06-01 17:05:43.397 App[1579:707] authenticateWithCompletionHandler: enter 
2012-06-01 17:05:43.399 App[1579:707] authenticateWithCompletionHandler: exit 

不過,我確實不知道這些NSLogs的來源。有沒有辦法找到我的項目中沒有經過每一個班級?

這些日誌真的讓我感到困擾,並且使得看到真正的控制檯輸出變得更加困難。

任何意見將不勝感激!

謝謝!

+0

做一個項目廣泛的搜索NSLog,如果你沒有看到它,那麼他們可能是從SDK內生成的。 –

+0

如何進行全項目搜索? –

+0

我會將其作爲回答發佈 –

回答

2

是的,在Xcode轉到左邊的小搜索欄(見圖片),並搜索正確的關鍵字。

enter image description here

注:我猜你進口了一些遊戲中心的東西到你的項目,這也正是他們很可能從

+1

是的,它來自這一行:[localPlayer authenticateWithCompletionHandler:^(NSError * e){ 沒有NSLogs,所以它似乎來自操作系統,這是非常惱人的。 –

2

未來可以嘗試搜索「的NSLog(@」 authenticateWithCompletionHandler」如果這產生了沒有結果,那麼作爲奧馬爾提到的,它可以從OS到來。

3

command + shift + f 寫的NSLog做NSLog的項目範圍內的搜索,然後回車

如果你不能找到nslog,那麼它們是從SDK中生成的

0

你應該真的寫你的NSLogs更詳細。根據需要提供儘可能多的信息。像這樣:你可能會考慮做一件事與宏替換所有的NSLog語句(即MYLog):

#define MYLog(msg) NSLog(__FILE__ "(" __LINE__ "): " msg); 

然後,只需使用MYLog好像是NSLog的。

注意:由於Obj-C使用'@'作爲NSString的前綴字符串,並且NSLog需要一個NSString,所以您可能必須稍微更改一下。我對預處理器不太熟悉,所以我不知道該怎麼做,但我認爲你會使用'##'預處理器操作符。