(可能非常简单)initWithString似乎不起作用

Ste*_*hai 1 objective-c nsstring

我正在关注的objc教程使用以下初始化:

NSString* p = [[NSString alloc] initWithString:@"something"];
Run Code Online (Sandbox Code Playgroud)

但是,前一章中所述的相同教程可以将这些类型的结构分解为:

NSString* p = [NSString alloc];
[p initWithString: @"something"];
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用NSLog 显示p的值,则会发生异常:

main: Uncaught exception NSInternalInconsistencyException, reason: attempt to use uninitialised string
Run Code Online (Sandbox Code Playgroud)

这可能很容易,但我似乎无法找到答案.

Dru*_*erB 6

您必须将变量设置为init的返回值:

NSString* p = [NSString alloc];
p = [p initWithString: @"something"];
Run Code Online (Sandbox Code Playgroud)