-2
我有一個類的變量,NSNumber
。我想將這個var的值傳遞給另一個類var。問題是,當我嘗試設置第二類var的值時,釋放第一個類的對象並獲取錯誤消息。傳遞對象之間的數據
在C++中這很容易做到。但在這裏,內存管理和指針困惑了我很多。
解決方案的代碼,來進行測試:
#import <Foundation/Foundation.h>
@interface A : NSObject
{
NSNumber *a;
}
@property (nonatomic, retain) NSNumber *a;
@end
int main(int argc, char *argv[])
{
NSAutoreleasePool *p = [[NSAutoreleasePool alloc] init];
A *instance1 = [[A alloc] init];
A *instance2 = [[A alloc] init];
[instance1 setA:[NSNumber numberWithFloat:5.43f]];
instance2.a = [instance1.a copy];
[instance1 release];
NSLog(@"Valor de la que sigue viva, parte2: %@", instance2.a);
[instance2 release];
[p release];
[pool drain];
return 0;
}
你可以發表一些代碼,所以我們最好明白你的意思嗎?謝謝。 – melbic
抱怨關於內存管理和指針混淆你,然後引用C++作爲一個例子,如果不是這種情況會讓我感到恐慌......還有一些實際的代碼。這是同一個類的兩個實例還是兩個類中的每個實例? –
對不起,不要發佈一些代碼,但我認爲會比我的解釋更混亂。現在我插入解決方案@Denis提出了我。 –