我正在尝试使用NSMutableArrays。我有一个显示项目列表的UITableView。我希望将某些变量(NSStrings)存储在一个数组中,因为一行被滚动过去。我可以使用NSLog执行此操作,但在设置NSMutableArray时遇到问题。这就是我目前的设置方式。
在我的.m文件的cellForRowAtIndexPath
方法中,我使用以下NSStrings:
我想将它们存储在名为scrolledOver的NSMutableArray中。我想使用术语“key1,key2,key3 ...”来识别数组的元素。
在我的.h文件中,我声明了NSMutable数组:
@Interface viewController {
NSMutableArray *scrolledOver;
}
@property (nonatomic, retain) NSMutableArray *scrolledOver;
当我滚动每一行时,我只想将新字符串附加到数组中...任何想法都会非常有用!谢谢!
答案 0 :(得分:1)
您可以为该单元格创建字典并将其添加到数组中,如下所示:
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:placeId forKey:@"key1"];
[dict setObject:CurrentTime forKey:@"key2"];
....
[scrolledOver addObject:dict];
答案 1 :(得分:0)
不要将这些值添加到字典中。这是不必要的,如果你的一个键改变了你就不会知道它。
相反,使用自定义属性创建一个NSObject子类。如果变量名称或某些内容将来发生变化,这将给您带来严重错误,这使您无法忘记更改应用程序所有区域中的密钥。
我假设这些变量定义了一个“地方”,如下所示:
@interface Place : NSObject
@property (nonatomic, assign) NSUInteger placeId;
@property (nonatomic, strong) NSDate* currentTime;
@property (nonatomic, copy) NSString* name;
@property (nonatomic, assign) double latitude;
@property (nonatomic, assign) double longitude;
@end
@implementation Place
@synthesize placeId;
@synthesize currentTime;
@synthesize name;
@synthesize latitude;
@synthesize longitude;
@end
现在初始化您的位置并将它们添加到将用作数据源的数组中。然后在设置单元格时,拉出indexPath的位置并调整单元格。
实现-tableView:willDisplayCell:forRowAtIndexPath:并使用它将它们添加到scrolledOver数组中。要确保它们是唯一的,请将其更改为NSMutableSet或NSMutableDictionary