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的具体子类创建一个新对象,然后返回这个新对象.

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...