2010-03-12 84 views
0

我有代碼客觀C字符串混亂

NSString *cellValue1 = [products1 objectAtIndex:indexPath.row]; 

當我嘗試打印NSLog(@"cell value is %@",cellValue1);

在日誌中我沒有得到任何東西, 如果我使用%S,我得到一些符號,不位於cellValue1中的字符串。

請幫幫我。

在此先感謝。

+0

%@對於打印NSString是正確的; %s用於C字符串(char *)。 –

+0

您可以添加將對象添加到products1的代碼嗎? – mmccomb

回答

1

檢查以確保products1實際上已設置。當您發送-objectAtIndex:消息時,聽起來好像是零。

+0

不,當您嘗試記錄一個零值作爲對象時,NSLog顯示'(null)'。 – Macmade

+0

提問者沒有指定他們*不是*看到(null)(他們對看到null的解釋可能導致他們說他們沒有得到任何東西,因爲null在技術上意味着什麼都沒有)。兩美分。 – Jasarien

+0

哈哈,這是正確的; ) – Macmade

1

它肯定意味着你的字符串是空的...... ,長度方法檢查它...

-1

解決方案:

NSString *cellValue1 = [products1 objectAtIndex:indexPath.row]; 
NSLog([NSString stringWithFormat:@"Cell Value is %@", cellValue1]); 

原因: 的NSLog工作帶有字符串輸入。雖然你的陳述應該能夠工作,但如果你的原始cellValue1字符串存在一些/任何問題,你的原始語句將不會處理這個問題並確保NSLog()被交給一個純字符串。通過使用stringWithFormat:語法,您可以確保即使您的cellValue1值爲null或nil,您將收到您的「單元格值」爲註釋,並且可能會提示您的cellValue1字符串正在傳遞給語句的內容。

測試注: 如果上述方法不爲你工作,只要使用NSLog(cellValue1);測試你的原始字符串。如果這不起作用,它會告訴你,你的原始NSString沒有正確地將你的產品拉到indexPath.row的值。

希望這會有所幫助!

+0

-1切勿使用非文字作爲格式字符串。 –

+0

@ Nikolai,通過確保他得到一個實際的字符串,提供了示例代碼來幫助用戶「Run-Down」解決問題。感謝降級點! – Newbyman