我有一个NSDictionary"item"的数组(dataArray).对于5名学生,它具有关键"名称"的"david"和关键"标记"等的"85"等数据.我想将david的标记替换为数组索引值的90(即0表示包含david和85的字典).我该怎么做?
数组中内容的代码是
[item setobject:name forkey:@"Name"];
[item setobject:mark forkey:@"Marks"];
[dataArray addOject:item]
Run Code Online (Sandbox Code Playgroud)
上面的代码进入解析,所以我有5个对象(学生),他们的名字和标记的数组,现在我想替换dataArray中第一个对象的标记.
我希望有一个NSDictionary从UIViews 映射到其他东西.
但是,由于UIViews没有实现NSCopying协议,我不能直接将它们用作字典键.
NSDictionaryJava中最接近Objective-C的实现是什么?对我来说,它看起来像HashMap<String, Object>,但我对Objective-C很新.
谢谢
我正在尝试向NSDictionary添加多个对象,比如
var myDict: NSDictionary = [["fname": "abc", "lname": "def"], ["fname": "ghi", "lname": "jkl"], ...]
Run Code Online (Sandbox Code Playgroud)
甚至可以这样做吗?如果没有,请建议更好的方法.我实际上需要将此NSDictionary转换为JSON字符串并将其发送到服务器,因此我需要NSDictionary中的多个对象.
以下是我的.h文件:
NSDictionary *originalValues;
@property (nonatomic, retain) NSDictionary *originalValues;
Run Code Online (Sandbox Code Playgroud)
这是用于初始化NSDictionary的.m文件.
@synthesize originalValues;
- (void)viewDidLoad {
// copy original values when view loaded
originalValues = [[NSDictionary alloc] initWithObjectsAndKeys:place.city, @"city", place.cuisine, @"cuisine",
place.latitude, @"latitude", place.longitude, @"longitude", place.name, @"name", place.rating,
@"rating", place.state, @"state", place.street, @"street", place.telephone, @"telephone",
place.timesVisited, @"times visited", place.uppercaseFirstLetterOfName, @"first letter",
place.website, @"website", place.zipcode, @"zipcode", nil];
}
Run Code Online (Sandbox Code Playgroud)
问题是只有前四个对象和键被添加.之后,它们不会被添加到以place.name,@"name"开头的字典中.我在整个字典上做了一个NSLog,输出的唯一的东西是我提到的前四个值,然后我在place.name上做了一个NSLog,它输出一个值,所以我知道也应输出这个键/值对.这里有什么我想念的吗?我很好奇为什么所有的值都没有最初添加到NSDictionary中?
我有一个用plist初始化的NSDictionary,除其他外,包含计数后跟32,我想得到count的值.
怎么样?
我知道如何通过它进入一个对象
[dictionaryObjectName objectForKey:@"count"]
Run Code Online (Sandbox Code Playgroud)
但对我来说,我所获得的价值不是一个对象.
如果我必须指定一个对象,那么最好使用的是什么(FYI值总是无符号),我需要将它变成一个真正的int.
我会做点什么吗?
NSNumber *num = [dictionaryObjectName objectForKey:@"count"];
int theValue = [num intValue];
[num release];
Run Code Online (Sandbox Code Playgroud)
对于没有垃圾收集器的iPhone来说,num上的发布是一件好事吗?
有没有办法在Objective-C中直接访问外部数组的内部数组?例如,对外部数据源的调用将返回以下对象:
{
bio = "this is the profile.bio data";
"first_name" = John;
"last_name" = Doe;
location = {
name = "Any Town, Any State";
};
metadata = {
pictures = {
picture = "https://picture.mysite.com/picture.jpeg";
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够访问例如location.name或metadata.pictures.picture数据.但是,点符号似乎不起作用.例如:
_gfbLocation = [result objectForKey:@"location.name"];
_gfbPicture = [result objectForKey:@"metadata.pictures.picture"];
Run Code Online (Sandbox Code Playgroud)
我能够访问此数据的唯一方法是首先将内部数组的内容设置为对象.思考?
我可以获取按值排序的字典键数组,但是如何获取按字典键排序的值数组?我一直在寻找没有运气的地方.任何帮助赞赏.
我的程序中有这个简单的循环:
for (Element *e in items)
{
NSDictionary *article = [[NSDictionary alloc] init];
NSLog([[e selectElement: @"title"] contentsText]);
[article setValue: [[e selectElement: @"title"] contentsText] forKey: @"Title"];
[self.articles insertObject: article atIndex: [self.articles count]];
[article release];
}
Run Code Online (Sandbox Code Playgroud)
它使用ElementParser库从RSS提要中创建值的字典(除了"title"之外还有其他值,我省略了).self.articles是一个NSMutableArray,它存储RSS文档中的所有字典.
最后,这应该产生一个字典数组,每个字典包含我需要的关于任何数组索引的项的信息.当我尝试使用setValue:forKey:它时,给我了
this class is not key value coding-compliant for the key "Title"
错误.这与Interface Builder无关,它只是代码.为什么我收到此错误?
我有一个包含字典对象的数组.在每个字典中,密钥是常见的.现在我想获得该密钥的所有值.我有迭代的这些值,但我正在寻找一些直接的方法或一个默认的方法来完成这项工作.
你能帮我一个默认的方法来达到目的吗?谢谢.
数据结构是这样的:
<array>
<dict>
<key>Match</key>
<string>Football</string>
<key>Stadium</key>
<string>XXXXX</string>
</dict>
<dict>
<key>Match</key>
<string>HOCKY</string>
<key>Stadium</key>
<string>XXXXX</string>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
我现在这样做:
NSMutableArray * matches = [[NSMutableArray alloc] init];
for (int i = 0; i< myArray.count; i++){
[matches insertObject:[[myArray objectAtIndex:i] objectForKey:@"Match"] atIndex:i];
}
[matchDataArray addObjectsFromArray:matches];
Run Code Online (Sandbox Code Playgroud)
它给了我正确的答案.但我不想做这个迭代.我想要一个方法,它将从数组的所有索引返回"匹配"键的所有值,并立即保存在另一个数组中.新创建的数组将只包含来自数组的所有索引的Match键值.
这可能吗??
nsdictionary ×10
objective-c ×7
iphone ×4
ios ×2
swift ×2
dictionary ×1
hashmap ×1
java ×1
json ×1
key-value ×1
nsarray ×1
nscopying ×1
uiview ×1
xcode ×1