【发布时间】:2017-12-11 10:42:44
【问题描述】:
我想在数组self.datesWithEvent 中添加对象date
@property (strong, nonatomic) NSArray<NSString *> *datesWithEvent;
[self.datesWithEvent addObject:date];
【问题讨论】:
标签: ios objective-c nsmutablearray nsarray
我想在数组self.datesWithEvent 中添加对象date
@property (strong, nonatomic) NSArray<NSString *> *datesWithEvent;
[self.datesWithEvent addObject:date];
【问题讨论】:
标签: ios objective-c nsmutablearray nsarray
您只能在可变对象中添加/删除元素
@property (strong, nonatomic) NSMutableArray<NSString *> *datesWithEvent;
但是仅仅声明属性是可变的是不够的,你必须用它来初始化它
[[NSMutableArray alloc] init];
或者,如果您为该属性分配另一个(不可变)数组,则必须调用 mutableCopy
datesWithEvent = [someArray mutableCopy];
【讨论】:
只有类的可变对象/实例允许修改其内部信息/元素。
请阅读Object Mutability & NSMutableArray,Apple 提供的文件。它将帮助您理解为什么这里需要可变类对象。
您应该/必须使用NSMutableArray 数组将对象添加/插入到数组中。
@property (strong, nonatomic) NSMutableArray<NSString *> *datesWithEvent;
NSMutableArray - addObject
在数组末尾插入给定对象。
声明
- (void)addObject:(ObjectType)anObject;
您的查询的解决方案:
注意:你的数组是NSString类型的元素,所以你的date对象必须是NSString。
(试试这个,让我知道你遇到了什么问题。同时分享你的完整代码,以及关于date对象的信息。)
@property (strong, nonatomic) NSMutableArray<NSString *> *datesWithEvent;
datesWithEvent = [[NSMutableArray alloc] init];
NSString *date = @"11-Dec-17";
[self.datesWithEvent addObject:date];
【讨论】: