【问题标题】:Objective-C class object not mapping to arrayObjective-C 类对象未映射到数组
【发布时间】:2016-10-26 05:29:29
【问题描述】:

如何将事件传递给 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)

【问题讨论】:

  • 我相信你没有正确初始化_toDoArray。您刚刚开始向其中添加项目

标签: ios objective-c nsarray amazon-dynamodb object-object-mapping


【解决方案1】:

arrayByAddingObject 方法返回另一个带有添加对象的数组,并且不追加相同的对象。

这是该方法的用途:

self.toDoArray = [self.toDoArray arrayByAddingObject:event];

但是,在您的情况下,该数组似乎甚至没有初始化。所以你也需要做这样的事情:

-(void) viewDidLoad {
    [super viewDidLoad];
    self.toDoArray = @[];
}

【讨论】:

  • 谢谢,我现在看到数组填充了。
【解决方案2】:

将 toDoArray 定义为 NSMutableArray,就像在 ViewController.h 中一样

@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];
}

【讨论】:

    【解决方案3】:

    请检查您要添加对象的数组是否为可变数组? 如果它不可变,您可以创建一个新数组或使用 mutableCopy 将现有数组转换为可变数组

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 2012-02-13
      • 2020-02-10
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多