iOS開發(fā)筆記(三)

前言

日常開發(fā)遇到的問題記錄。

JSON

Invalid type in JSON write (NSConcreteMutableData)
合法的json對(duì)象:

  • 1、頂層對(duì)象必須是NSArray或者NSDictionary;
  • 2、所有的對(duì)象必須是NSString/NSNumber/NSArray/NSDictionary/NSNull的實(shí)例;
  • 3、所有NSDictionary的key必須是NSString類型;
  • 4、數(shù)字對(duì)象不能是非數(shù)值或無窮;

內(nèi)購

1、銀行cnaps code查詢

http://www.lianhanghao.com/

2、申請(qǐng)賬號(hào)時(shí),無法加入program

蘋果說:

Sorry, you can’t enroll at this time. You can still develop apps and test them on iOS devices using the beta version of Xcode. Learn more

原因: 按照注冊(cè)的時(shí)候填寫的出生日期, 年齡未滿18歲。
解決方法:

  • 重新注冊(cè)apple id;
  • 在apple.com修改appid的信息;

iOS10

1、未找到應(yīng)用程序的“aps-environment”的授權(quán)字符串

"getting push token failed: Error Domain=NSCocoaErrorDomain Code=3000 "未找到應(yīng)用程序的“aps-environment”的授權(quán)字符串" UserInfo={NSLocalizedDescription=未找到應(yīng)用程序的“aps-environment”的授權(quán)字符串}

解決方案:打開Xcode8,點(diǎn)擊下面的地方。

2、去掉無效log并且保留原來的nslog信息

真機(jī)下設(shè)置OS_ACTIVITY_MODE會(huì)讓nslog的信息消失,可以把nslog改成printf。

#define LYLog(...) printf("%f %s\n",[[NSDate date]timeIntervalSince1970],[[NSString stringWithFormat:__VA_ARGS__]UTF8String]);

Debug

1、dSYM

當(dāng)把Objective-C代碼編譯成匯編、再轉(zhuǎn)譯成二進(jìn)制機(jī)器碼后,會(huì)生成一個(gè)dSYM文件包(內(nèi)含符號(hào)表,負(fù)責(zé)翻譯崩潰報(bào)告成可讀代碼)。
.dSYM文件是一個(gè)目錄,包含一個(gè)十六進(jìn)制的函數(shù)地址映射信息的文件,Debug的symbols都在這個(gè)文件中(包括文件名、函數(shù)名、行號(hào)等)。
Xcode項(xiàng)目每次編譯后,都會(huì)生成一個(gè)新的.dSYM文件,故而真機(jī)上的崩潰日志需要檢查對(duì)應(yīng)的符號(hào)表。


2、crash日志分析

WAKEUPS 錯(cuò)誤
http://stackoverflow.com/questions/25848441/app-shutdown-with-exc-resource-wakeups-exception-on-ios-8-gm
后臺(tái)線程有嚴(yán)格的調(diào)用限制

Background threads in iOS 8 have a hard limit on how many times you can run a sleep/wake cycle on each thread per second, and having a high count here is usually an indication that something is wrong / inefficient in your thread management.

Xcode

1、Xcode斷點(diǎn)失效

  • Clean Project
  • Clean Build Folder
  • Clear Xcode's DerivedData
  • Making sure breakpoints are enabled (Cmd Y)
  • Build Settings are set to Debug
  • Always Show Disassembly enabled and disabled
  • Debugging enabled in run config

最后發(fā)現(xiàn)問題出現(xiàn)在Xcode工程,當(dāng)把老工程的文件全部添加到新工程即可斷點(diǎn)。(老工程新建于2013年,猜測(cè)是這個(gè)原因;可惜沒有找到斷點(diǎn)失效的真正原因)

2、Xcode并存

在finder中打開應(yīng)用程序,把xcode改成xcode8,再下載xcode7;

pod相關(guān)

diff: /../Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

刪除podfile.lock 和 工程,重新pod install

需要注意查看pod install的指令,反饋結(jié)果。

集成報(bào)錯(cuò)

1、找不到KSYGPUStreamerKit


KSYRTCStreamerKit 繼承 KSYGPUStreamerKit,
但是沒有引入頭文件,使用的是 @class KSYGPUStreamerKit;
于是在使用KSYRTCStreamerKit 必須先導(dǎo)入KSYGPUStreamerKit,
再導(dǎo)入KSYRTCStreamerKit。
給出的demo中,頭文件的引用是

#import <libksyrtclivedy/KSYRTCStreamerKit.h>
#import <libksyrtclivedy/KSYRTCStreamer.h>

#import <libksygpuliveDy/libksygpuimage.h>
#import <libksygpuliveDy/KSYGPUStreamerKit.h>

這樣第三方在集成的時(shí)候,如果按照demo的頭文件引入順序,就會(huì)報(bào)奇怪的錯(cuò)誤。

2、運(yùn)行時(shí)錯(cuò)誤

運(yùn)行時(shí)報(bào)錯(cuò):

dyld: Library not loaded:@rpath/GPUImage.framework/GPUImage Referenced
Reason: image not found

原因是運(yùn)行時(shí)沒找到GPUImage
解決方案:embedd GPUImage.framework

UIWindow

UIWindow是第一個(gè)視圖控件(第一個(gè)對(duì)象是UIapplication),負(fù)責(zé)展示app內(nèi)容。
[self.window makekeyandvisible]可以讓窗口成為主窗口,并且顯示出來。
其他的view依賴于Window,Window顯示出來后,view添加在Window上。
UIWindow的三個(gè)級(jí)別:WindowNormal 、Alert、StatusBar;

UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar __TVOS_PROHIBITED;

UIAlterView的例子:alert級(jí)別;


一個(gè)普通的視圖層級(jí)

總結(jié)

作為iOS開發(fā),花在iOS的時(shí)間不是最多,反省反省反省。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,556評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,463評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,778評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,218評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,436評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,969評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,795評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,993評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,229評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,687評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,990評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容