gpt4 book ai didi

cocoa - NSString 初始化

转载 作者:行者123 更新时间:2023-12-03 16:14:16 26 4
gpt4 key购买 nike

这里是 Objective-C 菜鸟。

为什么会这样:

NSString *myString = [NSString alloc];
[myString initWithFormat:@"%f", storedNumber];

导致以下异常 -length 仅为抽象类定义。定义-[NSPlaceholderString长度]!

当这一切正常时:

NSString *myString = [[NSString alloc] initWithFormat:@"%f",storedNumber];

我认为后者仅仅是前者的缩写(但我显然错了,至少根据编译器来说)。

最佳答案

因为-initWithFormat:返回的对象与+alloc返回的对象不同,即与myString指向的对象不同的对象。这就是为什么您应该始终将 +alloc-init... 结合起来的原因。

这种情况在NSString等类集群中很常见。 +alloc 返回一个通用字符串对象,然后 -initWithFormat: 决定 NSString 的具体子类,释放由 创建的当前对象+alloc,从 NSString 的具体子类创建一个新对象,然后返回这个新对象。

关于cocoa - NSString 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com