當前位置:成語大全網 - 書法字典 - 在字典中,鍵可以為空嗎?值可以為空嗎?

在字典中,鍵可以為空嗎?值可以為空嗎?

使用NSMutableDictionary時經常使用SetValueforKey和setObjectforKey。它們通常可以交互使用,並且在代碼中經常使用。1,我們來看壹下setValue的定義:forKey:@ interface nsmutabledictionary(nskeyvaluecoding)/* send-set object:forKey:tota hereceiver,unlitesthevalueisnil,inwhicesend-remove object:forKey:。*/-(void)setValue:(id)valueforKey:(ns string *)key;@end擴展了NSMutableDictionary的壹個類別,這在上面的註釋中有明確說明。向接收方發送setobject: forge,即調用setobject: forge方法,除非值為零,否則調用removeObject:forKey2方法。看看setObject的定義:forKey:@ InterfaceNSMutableDictionary:ns dictionary-(Void)RemoveObjectForkey:(ID)Akey;-(void)set object:(id)anObjectforKey:(id)aKey;@end註:setObject:forKey:中Key的對象是id類型,不是NSString,但我們經常使用NSString。總結壹下它們之間的區別,1中的值,setobject: forge:不能為零,否則會報錯。setvalue: forkey:中的值可以為nil,但當值為nil時,將自動調用removeObject:forKey方法2,並且setvalue: forkey:中的關鍵參數只能為NSString類型。和setobject: fork:可以是任何類型。註意:setobject: fork:壹個對象不能存儲nil,應該與以下情況區分:1、【imagedictionary對象:【ns null null】fork:索引號】;【NSNullnull】表示壹個空對象,而不是nil。註意這壹點。2.當2中的鍵setObject:forKey:是壹個NSNumber對象時,它如下:【ImageDictionaryObject:objworkey:【NSNUMBERWOBERWITHINT:10】】;註意:上面提到的區別是針對字典的調用方。SetObject:forKey: method是NSMutabledictionary獨有的方法,而setValue:forKey: method是KVC(鍵值編碼)的主要方法。當setvalue: forge: method調用者是壹個對象時:setvalue: forge: method是在NSObject中創建的,這意味著所有oc對象都有此方法,因此它可以在任何類中使用。例如,使用:some class * some obj =【【some classalloc】init】;【someObjsetValue:self forkey:@“delegate“】;對象someObj將其委托屬性的值設置為當前類。當然,調用此方法的對象必須有delegate屬性來設置它,否則它將沒有任何效果。