开发者

What is NSAssert1?

I am developing an application on iOS. I see there is a macro called NSAssert1. What is it for? What are the differences in usage between NSLog and NSAssert1?

Please guide me or suggest 开发者_如何学Pythona tutorial where I can read about it.


NSAssert variants take a condition and a message. If the condition isn't met/true, then the assertion fails and NSAssert raises an exception with the message provided. For example, NSAssert((a == b), @"Error message"); will raise an exception when a is not equal to b. NSAssert1 is a variant that takes an additional argument and inserts it into the format string provided, like so: NSAssert1((a == b), @"Error message: %@", someErrorString);

NSLog will just write something to the console.

Documentation for all of those macros is on Apple's developer site.


NSAssert, NSParameterAssert, NSAssert1, and friends are assertion macros. Assertions are condition checks that scream when something is not right:

- (void) doSomethingWithPointer: (Foo*) foo
{
    NSAssert(foo != NULL, @"The Foo pointer must not be NULL!");
    foo->something;
}

See questions tagged “assertions” here on Stack Overflow for more information.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜