我想鑄造我的NSString恆定焦炭 的代碼如下所示:鑄造的NSString燒焦問題
NSString *date = @"12/9/2009";
char datechar = [date UTF8String]
NSLog(@"%@",datechar);
但它返回警告 賦值時將指針整數,未鑄造 ,不能正確打印字符,可有人告訴我這是什麼問題
我想鑄造我的NSString恆定焦炭 的代碼如下所示:鑄造的NSString燒焦問題
NSString *date = @"12/9/2009";
char datechar = [date UTF8String]
NSLog(@"%@",datechar);
但它返回警告 賦值時將指針整數,未鑄造 ,不能正確打印字符,可有人告訴我這是什麼問題
嘗試更多的東西是這樣的:
NSString* date = @"12/9/2009";
char* datechar = [date UTF8String];
NSLog(@"%s", datechar);
您需要使用的char *代替字符,你必須用%來打印C字符串不是%@(%@僅用於Objective-C的ID類型)。
我想補充(和%個%@代替)char和datechar之間的*:
NSString *[email protected]"12/9/2009"; char * datechar=[date UTF8String];
NSLog(@"%s",datechar);
你的代碼有2個問題:
1) 「字符datechar ......」 是單字符,它只能保存一個字符/字節,並且不會保存從日期/字符串對象生成的整個數組。因此,你的行應該在變量前面有一個(*)來存儲多個字符,而不僅僅是一個。 2)在上述修復之後,你仍然會得到關於(char *)vs(const char *)的警告,因此,你需要「投射」,因爲它們在技術上是相同的結果。改變的行:
char datechar = [date UTF8String];
進入=符號後
char *datechar = (char *)[date UTF8String];
通知(字符*),講述而非該表達式將返回(字符*)編譯器它是默認的(const char *)。
我知道你已經在早些時候標記了答案,但我認爲我可以貢獻來解釋問題以及如何解決更多細節。
我希望這會有所幫助。
親切的問候 海德
我很痛苦很長一段時間來NSString
轉換爲char
使用此功能
-(void)gpSendDTMF:(char) digit callID: (int)cid;
我試圖從谷歌搜索的這個問題/很多事情每一個答案但它不適合我。
最後我得到了解決方案。
解決方案:
NSString *digit = @"5";
char dtmf;
char buf[2];
sprintf(buf, "%d", [digit integerValue]);
dtmf = buf[0];
UTF8字符串返回一個const char * – 2012-06-05 14:51:56