cocoa – NSString初始化

前端之家收集整理的这篇文章主要介绍了cocoa – NSString初始化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Objective-C noob在这里.

为什么这样:

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

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

当这工作正常:

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

我认为后者只是前者的收缩(但我显然是错的,至少根据编译器而言).

解决方法

因为-initWithFormat:返回一个与alloc返回的对象不同的对象,即一个与myString指向的对象不同的对象.这就是你应该总是将alloc与-init耦合的原因….

这种情况在类集群(如NSString)中很常见. alloc返回一个通用字符串对象,然后-initWithFormat:决定NSString的具体子类,解除分配alloc创建的当前对象,从NSString的具体子类创建一个新对象,然后返回这个新对象.

猜你在找的cocoa相关文章