NSString *tmpStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
xmlSms = [xmlSms stringByAppendingString:tmpStr];
NSLog(xmlSms);
我得到了上面的代碼,但NSLog
沒有顯示任何東西......有人知道這個問題??stringByAppendingString問題在目標c
NSString *tmpStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
xmlSms = [xmlSms stringByAppendingString:tmpStr];
NSLog(xmlSms);
我得到了上面的代碼,但NSLog
沒有顯示任何東西......有人知道這個問題??stringByAppendingString問題在目標c
沒關係...我想出了爲什麼。 問題是,當你想在字符串上使用stringByAppendingString時,字符串應該有初始值。
錯誤例如:
NSString *str1;
str1 = [str1 stringByAppendingString:@"test"];
應該是:
NSString *str1 = @"";
str1 = [str1 stringByAppendingString:@"test"];
您對NSLog的調用不正確。嘗試:
NSLog(@"%@", xmlSms);
在Cocoa中,初始化函數(「構造」)經常回nil
如果他們失敗出於某種原因或其他。爲NSString
狀態的文檔:如果初始化由於某種原因失敗
返回nil(例如,如果數據並不代表編碼的有效數據)。
您確定傳遞給init函數的NSData
對象實際上包含UTF8編碼的字符串嗎?如果沒有,返回的對象將是nil
。
是的,NSString * tmpStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 這是你的意思嗎? 我認爲問題是關於這個,xmlSms = [xmlSms stringByAppendingString:tmpStr]; 但我不明白爲什麼它不工作.. – BlackSoil 2009-09-04 14:19:19
要展開,'%@'是用於在'的NSLog()'格式字符串對象,它適用於格式說明'NSString'實例,因爲它們是對象。這裏解釋了字符串格式說明符:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Strings/Articles/Artt/formatSpecifiers.html#//apple_ref/doc/uid/TP40004265 – 2009-09-04 06:05:30
這不是問題,我已經檢查了xmlSms的長度,它顯示爲0.和nslog(xmlsms)應該工作太多,因爲我已經做了很多次。問題是爲什麼appendingstring不起作用 – BlackSoil 2009-09-04 13:01:12
如何創建xmlSms?你可以顯示該變量的代碼嗎? – fbrereto 2009-09-04 16:09:01