我有个问题。
给我骨头,如何正确实施

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

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

解决此问题的最佳方法是什么,编写NSException或为此代码或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)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/

10-11 18:28