将对象添加到实例变量数组
Posted
技术标签:
【中文标题】将对象添加到实例变量数组【英文标题】:Adding objects to instance variable array 【发布时间】:2015-05-28 10:33:52 【问题描述】:有人可以帮我解决这个问题吗:
我正在我的 TableVC.m 文件中创建一个属性:
@property NSMutableArray *savingBeaconSpecs;
在我的 Viewdidload 中,我实例化了数组:
NSMutableArray *savingBeaconSpecs = [[NSMutableArray alloc]init];
现在我向服务器发出请求,我想将返回的 JSON 保存到对象中,并且每次都将它们保存在数组中。所以我在 ConnectionDidFinishLaunching 中做了以下操作:
self.artworkArray = [NSJSONSerialization JSONObjectWithData:self.data options:0 error:&err];
NSLog(@"Log ArtworkArray in ConnectionDidFinishLoading%@", self.artworkArray);
还有:
Artwork *artwork = [[Artwork alloc]init];
artwork.title = [self.artworkArray valueForKey:@"name"];
artwork.artist = [[self.artworkArray objectForKey:@"artist"] valueForKey:@"name"];
artwork.CreationYear = [self.artworkArray valueForKey:@"creationYear"];
artwork.categorie = [[self.artworkArray objectForKey:@"exposition"] valueForKey:@"name"];
现在我想把这个对象保存到 saveBeaconSpecs NSMutableArray 中
[self.savingBeaconSpecs addObject:artwork];
但是当我尝试记录他的内容时,NSMUtableArray SavingBeaconSpecs 总是返回 0
有人吗?
【问题讨论】:
【参考方案1】:因为您在 viewDidLoad 本地声明它:
NSMutableArray *savingBeaconSpecs = [[NSMutableArray alloc]init];
你应该使用
self.savingBeaconSpecs = [[NSMutableArray alloc]init];
和
[self.savingBeaconSpecs addObject:artwork];
并将您的财产声明为(没有第一个大写字母 S)
@property NSMutableArray *savingBeaconSpecs;
【讨论】:
【参考方案2】:要实例化数组,你应该这样做:
self.savingBeaconSpecs = [[NSMutableArray alloc] init];
或同样好:
self.savingBeaconSpecs = [NSMutableArray array];
【讨论】:
以上是关于将对象添加到实例变量数组的主要内容,如果未能解决你的问题,请参考以下文章