2010-11-05 45 views
1

我有一個定義爲int類的屬性。我檢索int值(它是15),並將其分配給UISlider.value,並且它始終顯示爲max,即使max設置爲100 - 這是因爲分配/檢索的值比它應該大得多。我敢肯定,這對我而言是一個簡單的誤解,即對象c和c在一般情況下是如何工作的。Objective-C:我的int值不是我期望的值

這裏是我的代碼:

// device is retrieved from my app delegate NSMutableArray 
uiSlider.value = device.nodeLevel; 

如果我把一個斷點在該行並拉起GDB,當我執行這個命令:

po [device nodeLevel] 

它打印出「15」,這是因爲這是int屬性設置較早的時間。

然而,當我這樣做:

print [device nodeLevel] 

我最終的實際值被分配到滑塊的value屬性......這是「100812800」 - 這似乎像這是一個內存地址或一些東西。無論如何,這是而不是我分配給nodeLevel的值,因此不是我想要分配給我的滑塊的value屬性的值。

我錯過了什麼?

僅供參考,這裏是我的設備類的聲明:

// Device.H file 
@interface Device : NSObject { 
    @private int nodeLevel; 
} 

@property (readwrite, assign, nonatomic) int nodeLevel; 

// Device.m file 
@implementation Device 

@synthesize nodeLevel; 

- (id)init { 
    self.nodeLevel = 0; 
    return self; 
} 
+0

如何分配給nodeLevel?你得到什麼編譯器警告? – 2010-11-05 15:50:47

回答

1

好像它是NSNumber地址的地址。檢查您是否正確初始化nodeLevel(例如,使用[NSNumber intValue]

0

婆的意思是「打印對象」,所以它應該與對象一起使用不是原始。 打印將返回一個整數的實際值。

我認爲nodelevel可能已設置爲整數的變量即

nodeLevel = &intToUse;