iOS中解決Xcode 8控制臺(tái)亂碼的方式
下面是之前大家會(huì)用的解決控制臺(tái)log輸出的方式
Xcode8里邊 Edit Scheme-> Run -> Arguments, 在Environment Variables里邊添加 OS_ACTIVITY_MODE = Disable 環(huán)境變量 ,這個(gè)相信大家都會(huì).
使用改變Xcode系統(tǒng)模板的方式
先介紹幾個(gè)c函數(shù)
/** *getenv(取得環(huán)境變量?jī)?nèi)容) *定義函數(shù) char * getenv(const char *name); *函數(shù)說(shuō)明 getenv()用來(lái)取得參數(shù)name環(huán)境變量的內(nèi)容。 *參數(shù)說(shuō)明 *name為環(huán)境變量的名稱,如果該變量存在則會(huì)返回指向該內(nèi)容的指針。 *環(huán)境變量的格式為name=value。 *返回值:執(zhí)行成功則返回指向該內(nèi)容的指針,找不到符合的環(huán)境變量名稱則返回NULL。 */ - (void)getenv_test:(char *)env_name { if(getenv(env_name)) { printf("%s's value = %s",env_name,getenv(env_name)); } } /** *putenv(改變或增加環(huán)境變量) *定義函數(shù) int putenv(const char * string); *函數(shù)說(shuō)明:putenv()用來(lái)改變或增加環(huán)境變量的內(nèi)容。 *參數(shù) *string的格式為name = value, *如果該環(huán)境變量原先存在,則變量?jī)?nèi) 容會(huì)依參數(shù)string改變,否則此參數(shù)內(nèi)容會(huì)成為新的環(huán)境變量。 *返回值:執(zhí)行成功則返回0,有錯(cuò)誤發(fā)生則返回-1。 */ - (void)putenv_test { char *env_name = "test_two"; if(putenv(env_name) == 0) { printf("%s = %d",env_name,putenv("test_two = two")); } } /** *unsetenv(移除環(huán)境變量) *定義函數(shù) unsetenv(const char *string); *函數(shù)說(shuō)明:unsetenv()用來(lái)改變或增加環(huán)境變量的內(nèi)容。 *參數(shù) *string為環(huán)境變量的名稱, *如果該環(huán)境變量原先存在,則移除該環(huán)境變量。 *返回值:執(zhí)行成功則返回0,有錯(cuò)誤發(fā)生則返回-1。 */ - (void)unsetenv_test { char *env_name = "test_one"; if(unsetenv(env_name) == 0) { printf("%s is unseted = %s",env_name,unsetenv(env_name) == 0 ? "yes" : "no"); } } /** setenv(改變或增加環(huán)境變量) *定義函數(shù) int setenv(const char *name,const char * value,int overwrite); *函數(shù)說(shuō)明 setenv()用來(lái)改變或增加環(huán)境變量的內(nèi)容。 *參數(shù) name為環(huán)境變量名稱字符串。 *參數(shù) value則為變量?jī)?nèi)容。 *參數(shù) overwrite用來(lái)決定是否要改變已存在的環(huán)境變量。 如果overwrite不為0,則改變環(huán)境變量原有內(nèi)容,原有內(nèi)容會(huì)被改為參數(shù)value所指的變量?jī)?nèi)容。 如果overwrite為0,且該環(huán)境變量已有內(nèi)容,則參數(shù)value會(huì)被忽略。 *返回值 執(zhí)行成功則返回0,有錯(cuò)誤發(fā)生時(shí)返回-1 */ - (void)setenv_test { char *env_name = "test_one"; char *env_value = "ooops"; if(setenv(env_name,env_value,1) == 0) { printf("%s is seted = %s",env_name,setenv(env_name,env_value,1) == 0 ? "success" : "failed"); } }
我們要修改的模板如下的路徑中
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/
Library/Xcode/Templates/Project\ Templates/iOS/Application/Cocoa\ Touch\ Application\ Base.xctemplate
打開(kāi)文件,在文件中搜索如下代碼
<key>main.m:main:UIApplicationMain</key> <string>@autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } </string>
將其改為
<key>main.m:main:UIApplicationMain</key> <string>@autoreleasepool { /* * 此行代碼是增加的代碼 */ setenv("OS_ACTIVITY_MODE", "DISABLE", 1); return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); }
其目的是為了,在創(chuàng)建的Xcode項(xiàng)目的入口文件中增加添加環(huán)境變量的操作
效果如下
// // main.m // environment_variable // #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { setenv("OS_ACTIVITY_MODE", "disable", 1); return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,至此解決Xcode8創(chuàng)建新項(xiàng)目,控制臺(tái)會(huì)出現(xiàn)奇葩log的小缺陷!希望能對(duì)各位遇到這個(gè)問(wèn)題的朋友們能有所幫助,如果有問(wèn)題大家可以留言交流。
相關(guān)文章
iOS11 SectionHeader 胡亂移動(dòng)且滑動(dòng)時(shí)出現(xiàn)重復(fù)內(nèi)容的解決方法
這篇文章主要介紹了iOS11 SectionHeader 胡亂移動(dòng)且滑動(dòng)時(shí)出現(xiàn)重復(fù)內(nèi)容的解決方法,需要的朋友可以參考下2017-11-1112個(gè)iOS技術(shù)面試題及答案總結(jié)
這篇文章給大家總結(jié)了在iOS面試的時(shí)候可能會(huì)遇到的12個(gè)技術(shù)面試題,以及這些面試題但答案,這些答案只是給大家一些參考,大家可以再結(jié)合自己理解進(jìn)行回答,有需要的朋友們下面來(lái)一起看看吧。2016-09-09ios實(shí)現(xiàn)UITableView之間圓角和間隙
這篇文章主要為大家詳細(xì)介紹了ios實(shí)現(xiàn)UITableView之間圓角和間隙,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08基于iOS Realm數(shù)據(jù)庫(kù)的使用實(shí)例詳解
下面小編就為大家分享一篇基于iOS Realm數(shù)據(jù)庫(kù)的使用實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01IOS使用NSUserDefault去實(shí)現(xiàn)界面?zhèn)髦岛蛿?shù)據(jù)存儲(chǔ)
這篇文章主要介紹了IOS使用NSUserDefault去實(shí)現(xiàn)界面?zhèn)髦岛蛿?shù)據(jù)存儲(chǔ)的相關(guān)資料,需要的朋友可以參考下2017-07-07IOS 時(shí)間和時(shí)間戳之間轉(zhuǎn)化示例
我們經(jīng)常從服務(wù)器后臺(tái)拿到時(shí)間戳的時(shí)間,以下代碼可以實(shí)現(xiàn)將時(shí)間戳轉(zhuǎn)為可讀的時(shí)間格式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01iOS開(kāi)發(fā)中多線程的安全隱患總結(jié)
在本篇文章中小編給大家整理了關(guān)于iOS開(kāi)發(fā)中多線程的安全隱患的知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)參考下。2019-07-07