gpt4 book ai didi

objective-c - 访问字典数组?

转载 作者:行者123 更新时间:2023-12-03 17:29:25 25 4
gpt4 key购买 nike

我对下面的代码有几个问题:

(1) “newItem”是一个自动释放的对象吗?它从指定的数组索引获取返回的字典吗?

(2) 有没有一种简单的方法可以一次性访问一组字典,或者我是否按照您期望的方式进行操作?

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSMutableArray *menu = [[NSMutableArray alloc] init];
NSMutableDictionary *menuItem;
NSMutableDictionary *newItem;

NSArray *itemName = [NSArray arrayWithObjects:
@"Latte Medio",
@"Cappucion Medio",
@"Mocha Medio",
@"Vanilla Latte Medio",nil];

NSArray *itemFat = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:6.9],
[NSNumber numberWithFloat:4.7],
[NSNumber numberWithFloat:6.6],
[NSNumber numberWithFloat:6.9],nil];

NSArray *itemCals = [NSArray arrayWithObjects:
[NSNumber numberWithInt:516],
[NSNumber numberWithInt:408],
[NSNumber numberWithInt:624],
[NSNumber numberWithInt:743],nil];

NSLog(@"DICTARRAY ... Start");

// Create menuItem object
menuItem = [[NSMutableDictionary alloc] init];
[menuItem setObject:[itemName objectAtIndex:0] forKey:@"product"];
[menuItem setObject:[itemFat objectAtIndex:0] forKey:@"fat"];
[menuItem setObject:[itemCals objectAtIndex:0] forKey:@"calories"];

// Add menuItem object to menu
[menu addObject:menuItem];
[menuItem release], menuItem = nil;

// Access menu to get menuItem
newItem = [menu objectAtIndex:0];
NSLog(@"DATA: %@",[newItem objectForKey:@"product"]);
NSLog(@"DATA: %@",[newItem objectForKey:@"fat"]);
NSLog(@"DATA: %@",[newItem objectForKey:@"calories"]);

// Clean up
[menu release], menu = nil;
[pool drain];
return 0;
}

加里

最佳答案

您存储此信息的方式似乎很奇怪。您将所有名称存储在一起,将所有脂肪存储在一起,将所有卡路里存储在一起,而实际上您正在处理的元素(或对象)是咖啡饮料。制作一个新对象可能会更容易,比如 CoffeeDrink,它看起来如下所示:

@interface CoffeeDrink:NSObject {
NSString *name;
NSNumber *fat;
NSNumber *calories;
}

@property( retain ) NSString *name;
@property( retain ) NSNumber *fat;
@property( retain ) NSNumber *calories;

@end

然后,在您的代码中,您可以拥有一个包含不同 CoffeeDrinkNSArray

关于objective-c - 访问字典数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com