ios - 如何在 Objective-C 中返回类似于 std::pair 的对象?

标签 ios objective-c

我来自 C++,我正在尝试为文本字段中的用户输入创建验证器类。 我的函数需要返回一个 bool 和一条消息(如果 bool 是 YES,消息是 NULL)。 Objective-C 中是否有类似 std::pair 的东西?来自 C++(其中包含一对值)?

最佳答案

Cocoa 中没有std::pair;你可以创建自己的。然而,更惯用的解决问题的方法类似于其他返回错误的方法,即传递一个指向错误的指针,并返回 BOOL:

-(BOOL) validateInput:(id)input error:(NSError**)errPtr {
    // Validate the input
    // If the input is valid, do not assign `errPtr`, and return `YES`
    // Otherwise, create a `NSError` object, and assign to errPtr
}

您可以按如下方式调用此方法:

NSError *err;
if (![validator validateInput:@"some input" error:&err]) {
    // Show the error
}

有关如何在 Cocoa 中使用此习语的示例,请参阅 NSRegularExpression 类的 regularExpressionWithPattern:options:error: 方法。

关于ios - 如何在 Objective-C 中返回类似于 std::pair 的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792454/

相关文章:

ios - 核心数据 : many-to-many relationship with state

iOS Autolayout 垂直等距填充父 View

ios - 如何在 iOS 中使用 aubio 框架?

Objective-C:阻塞线程直到 NSTimer 完成(iOS)

ios - 杀死翻转开关中的应用程序

ios - 无法从plist加载数组,无法获取对象

ios - Xcode 11,UI 元素在哪里?

ios - 无法在可扩展表格 View 单元格中定位 UIElement(开关)

ios - 方法参数 block 背后的逻辑

ios - 应用程序可以打开浏览器,让用户登录并接收文件吗?