我来自 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/