Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在objective-c/UIKit中创建一种多维关联数组?_Objective C_Iphone - Fatal编程技术网

如何在objective-c/UIKit中创建一种多维关联数组?

如何在objective-c/UIKit中创建一种多维关联数组?,objective-c,iphone,Objective C,Iphone,问题:我有一组图像,比如说5张。在我的上下文中有一个定义“图像对象”的结构 每个这样的图像对象都有以下信息: 图像文件的名称(即“myImage.png”) xOffsetPx yOffsetPx 宽度 高度 图像应该显示在视图中非常特定的位置,因此我需要将所有这些信息存储在某种多维关联数组(或类似数组)中。图像的名称将是键或ID 一个月前,我在1000页的objective-c书中偶然发现了类似的东西,但现在再也找不到了。有什么想法吗?除非我完全误解了这个问题-为什么不从这些属性中创建一个

问题:我有一组图像,比如说5张。在我的上下文中有一个定义“图像对象”的结构

每个这样的图像对象都有以下信息:

  • 图像文件的名称(即“myImage.png”)
  • xOffsetPx
  • yOffsetPx
  • 宽度
  • 高度
图像应该显示在视图中非常特定的位置,因此我需要将所有这些信息存储在某种多维关联数组(或类似数组)中。图像的名称将是键或ID


一个月前,我在1000页的objective-c书中偶然发现了类似的东西,但现在再也找不到了。有什么想法吗?

除非我完全误解了这个问题-为什么不从这些属性中创建一个实际的对象(或结构),并将其作为值存储在字典中?

除非我完全误解了这个问题-为什么不创建一个实际的对象(或结构)从这些属性中提取并将其作为值存储在字典中?

最简单的方法是只使用字典:

NSMutableDictionary *images;

NSDictionary *myPictureAttributes = [NSDictionary dictionaryWithObjects:
    [NSArray arrayWithObjects:[NSNumber numberWithFloat:30],
                              [NSNumber numberWithFloat:10],
                              [NSNumber numberWithFloat:15],
                              [NSNumber numberWithFloat:15], nil],
    forKeys:[NSArray arrayWithObjects:@"xOffsetPx",
                              @"yOffsetPx",
                              @"width",
                              @"height", nil]];
[images setObject:myPictureAttributes forKey:@"myImage.png"];

您可能希望属性是某种常量,以便编译器在出现拼写错误时向您发出警告。您还可以拥有一个简单的数据对象类,其中包含一些属性,然后设置这些属性并将对象直接添加到字典中。根据您的具体要求,还有许多其他方法可以解决此问题,但NSDictionary是Cocoa中用于关联数组的基本集合类。

最简单的方法是只使用字典:

NSMutableDictionary *images;

NSDictionary *myPictureAttributes = [NSDictionary dictionaryWithObjects:
    [NSArray arrayWithObjects:[NSNumber numberWithFloat:30],
                              [NSNumber numberWithFloat:10],
                              [NSNumber numberWithFloat:15],
                              [NSNumber numberWithFloat:15], nil],
    forKeys:[NSArray arrayWithObjects:@"xOffsetPx",
                              @"yOffsetPx",
                              @"width",
                              @"height", nil]];
[images setObject:myPictureAttributes forKey:@"myImage.png"];
您可能希望属性是某种常量,以便编译器在出现拼写错误时向您发出警告。您还可以拥有一个简单的数据对象类,其中包含一些属性,然后设置这些属性并将对象直接添加到字典中。根据您的具体需求,还有许多其他方法可以解决此问题,但NSDictionary是Cocoa中关联数组的基本集合类