【发布时间】:2016-09-19 19:19:06
【问题描述】:
在我的 iPhone 应用中。
问题:当我试图从模型类中的字典中获取值时,它给了我 nil 值。
为什么会这样,这是内存管理问题吗?
我这样做了,
我将 NSDictionary 从我的 viewController 传递到 NSMutableArray 类别,然后我将它传递给我的 Modelclass。
如果你想看编码,
-
在我的 ViewController.m 文件中
[arrayNews convertToNewsArticles];
-
在我的 NSMutableArray 类别中,我正在调用方法 convertToNewsArticles。
for(NSMutableDictionary *dictionary in self) {
NewsArticle *newsArticle=[[NewsArticle alloc] initWithDictionary:dictionary]; [arrayConverted addObject:newsArticle]; }
我说的是我正在传递的这本字典。
-
这是我的模型类
-(NewsArticle*)initWithDictionary:dictionary{
self.title=dictionary[@"title"]; self.author=dictionary[@"author"]; self.urlString=dictionary[@"url"]; return self;}
更新:
我通过使用 GitHub 上的 IAModelBase 类解决了。IAModelBase
【问题讨论】:
-
您的自定义对象在哪里?
-
为什么要继承 NSMutableArray?您正在更改
initWithArray的语义。该代码属于其他地方;可能在获取新闻文章的对象中,但如果您坚持这样做,您只需说[self addObject:newsArticle]您是否阅读过 NSMutableArray 类参考中的 Subclassing notes? -
我支持@Paulw11。您的代码设计完全错误。这个问题也有经典的XY problem,所以请描述你想要达到的目标而不是你是如何做到的!
-
自定义对象,我做了一个类,加了属性,加了initWithDictionary方法?
-
@Paulw11,Marek R,是的,我对此表示怀疑。所以,我犹豫不决。在那之前我会问如何设计自定义对象模型类。等我的更新。请。
标签: ios objective-c objective-c-category