gpt4 book ai didi

ios - Objective-C 如何正确实现协议(protocol)或其他解决方案

转载 作者:行者123 更新时间:2023-11-29 12:59:25 24 4
gpt4 key购买 nike

我有一个问题。给我一个骨头,如何正确实现这一点

下面的示例代码。在 viewController 中,我将调用“updateViewData:”方法来更新 ViewClass 中的数据。 NewData 数组应包含 DataModels 实例数组

所以我的问题。我想保护代码,如果另一个开发人员将调用“updateViewData:”而不是 DataModel 实例数组。

解决这个问题的最佳方法是什么,编写 NSException 或为此编写一些协议(protocol),或者可能是 NSMutableArray 的子类,它将检查添加的数据到数组。

如果答案中包含示例,我将不胜感激。

非常感谢。

//View
@interface ViewClass : UIView
@property (nonatomic, strong) NSArray *viewData;

- (void)updateViewData:(NSArray *)newData;
@end


@implementation ViewClass
- (void)updateViewData:(NSArray *)newData
{
self.viewData = newData;

[self.tableView reloadDate];
}
@end


//Model
@interface DataModel : NSObject

@property (nonatomic, strong) NSDate *date;
@property (nonatomic, strong) NSString *name;

@end

最佳答案

我会简单地返回 bool 值成功代码:

- (BOOL)updateViewData:(NSArray *)newData
{
for (id obj in newData)
if (![obj isKindOfClass:[DataModel class]])
return NO;

self.viewData = newData;

[self.tableView reloadDate];
return YES;
}

抛出异常似乎有点极端,但这完全取决于您。

关于ios - Objective-C 如何正确实现协议(protocol)或其他解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com