我有一個定義爲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;
}
如何分配給nodeLevel?你得到什麼編譯器警告? – 2010-11-05 15:50:47