2010-09-09 47 views
-1

在我的代码中,我在.h中声明NSString对象,并在.m中合成,我用数组中的字符串对象分配它。但它不起作用。NSString不工作

当我在日志中打印它有时会显示CAlayer类,有时显示NSCFString类对象。有些时候显示UIDevicewhitedevicetype类如何解决这个问题?帮助......

+2

编辑您的问题以包含代码。 – mbehan 2010-09-09 09:15:11

+0

只是让我给你发送最新的特洛伊木马来看看你的代码。 – Eiko 2010-09-09 09:15:57

+0

这是过度释放的经典症状。如果您需要更具体的帮助,您需要向我们展示一些代码。 – JeremyP 2010-09-09 10:19:14

回答

0

你如何将字符串分配给代码中的NSString对象?

你在做这样的事情:

NSString* someString = @"My string"; 
self.myStringProperty = someString; 

哪里myStringProperty是NSString的声明为一个属性。

0

我认为你的记忆被毁了。你可能会发布一些不应该发布的东西。

0

该参考肯定是不好的。你说你将字符串分配给一个属性。这是否意味着在你的头,你有这样的:

@property (assign) NSString* myString; 

如果是这样,则明确指出您不打算守住串参考,允许它被dealloced即使你仍持有指针(不是一个参考)。你应该让说两种:

@property (copy) NSString* myString; 
@property (retain) NSString* myString; 

如果你是指向你在一个阵列中的字符串值,只要该数组发布的所有内容都被释放。如果您没有保留对字符串的引用,它将被解除分配。一旦发生这种情况,指针会将指针存储到未定义的内存中,这些内存将被重用以保存您列出的对象类型。