spe*_*tak 5 iphone cocoa-touch objective-c ios
如果从字典中的空键/值获取数据,如何将默认值放入字符串中.
所以 [myObject setMyString:[dictionary valueForKey:@"myKey"]];
那么如果我这样做,NSString *newString = myObject.myString我会得到一个unrecognized selector error.
所以,如果键值为空,我只需要一种方法来插入一个默认字符串;
Mat*_*man 10
如果dictionary是NSDictionary你应该使用objectForKey的valueForKey是用于KVC.NSDictionary如果密钥与某些NSDictionaryKVC密钥冲突,例如"@allKeys"或"@count",它可能会工作,但可能会咬你.
我认为最短的可能是:
[dictionary objectForkey:@"myKey"] ?: @"defaultValue"
Run Code Online (Sandbox Code Playgroud)
有一种可怕的方法可以滥用现有的字典方法来生成get by key或者如果你因某些原因不想使用某个条件则返回默认值...
[[dictionary objectsForKeys:[NSArray arrayWithObject:@"myKey"]
notFoundMarker:@"defaultValue"]
objectAtIndex:0]
Run Code Online (Sandbox Code Playgroud)
你没有听到我的消息:)
那这个呢?
NSString *value = [dictionary valueForKey:@"myKey"];
if (!value) value = @"defaultValue";
[myObject setMyString:value];
Run Code Online (Sandbox Code Playgroud)
使用[NSNull null]对于一般情况,并处理它返回的时候.
在你的问题中,你不会得到"无法识别的选择器"; newString将被设置为nil(相反[NSNull null],所以我怀疑你可能有其他意义 - 也许如何设置默认值NSUserDefaults?
| 归档时间: |
|
| 查看次数: |
21713 次 |
| 最近记录: |