我试图在以下名为'robotDesign'的NSDictionary中获取"@type"键的值
robotDesign : {
"@id" = "2";
"@type" = "piggyDash";
turnAngle = "-90";
width = "90.0";
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的JSON对象的一部分
[NSJSONSerialization JSONObjectWithData: options: error:];
Run Code Online (Sandbox Code Playgroud)
我使用以下代码来提取@type值
NSString * robot_type = (NSString*)[robotDesign valueForKey:@"@type"];
Run Code Online (Sandbox Code Playgroud)
但是请注意以下错误:
由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[<__ NSCFDictionary 0x71de9e0> valueForUndefinedKey:]:此类不是密钥类型的密钥值编码兼容.
注意:请注意,字典中的其他对象如'turnAngle'和'width'可以使用上面给出的相同代码轻松提取,但使用各自的键.
我想编写一个函数,可以使用STL通用列表,双端队列或向量,并在其中搜索密钥.这个函数的方法签名是什么?我们如何实现它?
我所知道的是,如果我们接受函数参数中的任何派生类,我们可以使用基本抽象类,假设所有相关的派生类都具有您的问题所需的函数.
编辑:我们不能在函数参数中传递容器的迭代器.如果我们能做到这一点很容易.它必须是一个容器.
我在想:假设'Container'是来自STL容器的抽象基类(根据下面的第一个答案,它不是).
模板bool搜索(std :: Container C,T&key);
谢谢
我有个问题.我想让用户自由选择我的应用程序中的许多蓝牙设备.现在我不知道有多少蓝牙设备,所以我想知道是否可以给用户一个选项,点击"添加新的蓝牙设备"自定义首选项并打开一个新的首选项屏幕,让他选择新的蓝牙设置设备?
总之,显示器看起来像:
添加新的蓝牙设备..
如果用户添加一个,它应该如下所示:
蓝牙设备1
添加新的Blutooth设备..
如果用户添加另一个,它应该看起来像:
蓝牙设备1
蓝牙设备2
添加新的蓝牙设备..
我知道如何使用标准首选项和基本编码.我唯一想知道的是如何在运行时继续为这些设备添加设置.我将不胜感激.谢谢.
android ×1
c++ ×1
cocoa-touch ×1
ios ×1
nsdictionary ×1
nsstring ×1
objective-c ×1
preferences ×1
search ×1
stl ×1
templates ×1