首先這個(gè)問(wèn)題從字面意思上理解很簡(jiǎn)單就是說(shuō)在字典嘗試插入一個(gè)空的對(duì)象侄非,這個(gè)在字典里面是不允許的逞怨,絕對(duì)不允許5狻3恪册踩!
'NSInvalidArgumentException', reason: '[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
我的場(chǎng)景是這樣的:首先我是通過(guò)準(zhǔn)備一段參數(shù)暂吉,然后使用別人的SDK借笙,然后調(diào)用別人SDK的接口业稼,別人的SDK接口需要一個(gè)字典作為參數(shù)低散,但是接口文檔給出的參數(shù)說(shuō)明中參數(shù)的key都是大寫(xiě)的熔号,所以我就直接用@“參數(shù)說(shuō)明中的key”直接是copy過(guò)來(lái)的引镊,但是后面發(fā)現(xiàn)其實(shí)人家已經(jīng)用了一個(gè)宏定義吩抓,關(guān)鍵是宏定義的key是小寫(xiě)開(kāi)頭的疹娶,大家可以一睹真容:
key(鍵值) 鍵值說(shuō)明
RoleIdKey 角色id
RoleNameKey 角色名稱(chēng)
RoleLevelKey 角色等級(jí)
ServerIdKey 服務(wù)器id
ServerNameKey 服務(wù)器名稱(chēng)
但是再看看SDK中的宏定義:
#define ServerIdKey @"serverId"
#define ServerNameKey @"serverName"
#define RoleIdKey @"roleId"
#define RoleLevelKey @"roleLevel"
#define RoleNameKey @"roleName"
看到這你是不是覺(jué)得活著挺累的额港?咳锹安,挺累的...
在此呢我只是想說(shuō)如果自己確認(rèn)沒(méi)有問(wèn)題叹哭,那么一定要大膽懷疑是別人的問(wèn)題风罩,另外對(duì)接別人的SDK的時(shí)候一定要對(duì)照別人的demo來(lái)對(duì)接超升,要不然你會(huì)懷疑人生的...
以上!B渥贰轿钠!