Objective-C class 对象未映射到数组
Objective-C class object not mapping to array
如何将事件传递给 toDoArray?我不确定我错过了什么。任何帮助表示赞赏。
SDEventModel.h
@interface SDEventModel : AWSDynamoDBObjectModel <AWSDynamoDBModeling>
ViewController.h
@property (nonatomic, strong) NSArray *toDoArray;
ViewController.m
if (task.result) {
AWSDynamoDBPaginatedOutput *paginatedOutput = task.result;
for (SDEventModel *event in paginatedOutput.items) {
//Do something with event.
NSLog(@"Task results: %@", event);
[self.toDoArray arrayByAddingObject:event];
NSLog(@"To do array results: %@", self.toDoArray);
[self.tableview reloadData];
}
}
这是 NSLog 的输出。
Task results: <SDEventModel: 0x7faa88d81430> {
city = "New York";
image = "photo-22.jpg";
title = "Hang with friends";
}
To do array results: (null)
arrayByAddingObject
方法 returns 另一个数组添加了对象,但不追加相同的对象。
方法的用途如下:
self.toDoArray = [self.toDoArray arrayByAddingObject:event];
但是,在您的情况下,数组似乎甚至没有初始化。所以你也需要做这样的事情:
-(void) viewDidLoad {
[super viewDidLoad];
self.toDoArray = @[];
}
在 ViewController.h
中将 toDoArray 定义为 NSMutableArray
@property (nonatomic, strong) NSMutableArray *toDoArray;
现在 ViewController.m
初始化该数组并将事件对象添加到其中
if (task.result) {
self.toDoArray = [NSMutableArray new];
AWSDynamoDBPaginatedOutput *paginatedOutput = task.result;
for (SDEventModel *event in paginatedOutput.items) {
//Do something with event.
NSLog(@"Task results: %@", event);
[self.toDoArray addObject:event];
}
NSLog(@"To do array results: %@", self.toDoArray);
[self.tableview reloadData];
}
请检查您添加对象的数组是否可变?
如果它不是可变的,您可以创建一个新数组或使用 mutableCopy
将现有数组转换为可变数组
如何将事件传递给 toDoArray?我不确定我错过了什么。任何帮助表示赞赏。
SDEventModel.h
@interface SDEventModel : AWSDynamoDBObjectModel <AWSDynamoDBModeling>
ViewController.h
@property (nonatomic, strong) NSArray *toDoArray;
ViewController.m
if (task.result) {
AWSDynamoDBPaginatedOutput *paginatedOutput = task.result;
for (SDEventModel *event in paginatedOutput.items) {
//Do something with event.
NSLog(@"Task results: %@", event);
[self.toDoArray arrayByAddingObject:event];
NSLog(@"To do array results: %@", self.toDoArray);
[self.tableview reloadData];
}
}
这是 NSLog 的输出。
Task results: <SDEventModel: 0x7faa88d81430> {
city = "New York";
image = "photo-22.jpg";
title = "Hang with friends";
}
To do array results: (null)
arrayByAddingObject
方法 returns 另一个数组添加了对象,但不追加相同的对象。
方法的用途如下:
self.toDoArray = [self.toDoArray arrayByAddingObject:event];
但是,在您的情况下,数组似乎甚至没有初始化。所以你也需要做这样的事情:
-(void) viewDidLoad {
[super viewDidLoad];
self.toDoArray = @[];
}
在 ViewController.h
NSMutableArray
@property (nonatomic, strong) NSMutableArray *toDoArray;
现在 ViewController.m
初始化该数组并将事件对象添加到其中
if (task.result) {
self.toDoArray = [NSMutableArray new];
AWSDynamoDBPaginatedOutput *paginatedOutput = task.result;
for (SDEventModel *event in paginatedOutput.items) {
//Do something with event.
NSLog(@"Task results: %@", event);
[self.toDoArray addObject:event];
}
NSLog(@"To do array results: %@", self.toDoArray);
[self.tableview reloadData];
}
请检查您添加对象的数组是否可变? 如果它不是可变的,您可以创建一个新数组或使用 mutableCopy
将现有数组转换为可变数组