2
A
回答
3
integer++
適用,因爲您直接訪問integer
並將新值指定給integer
而不是發送消息和使用訪問器。假設integer
被聲明爲NSInteger
屬性,以下語句將對整數值具有相同的效果,但直接訪問不符合KVO。
[self setInteger:0];
self.integer = self.integer + 1; // use generated accessors
NSLog(@"Integer is :%d",[self integer]); // Integer is: 1
integer++;
NSLog(@"Integer is :%d",[self integer]); // Integer is: 2
0
我相信Obj-C在過去的一兩年裏已經更新,所以這種代碼的工作原理。我寫了一個快速測試,發現下面的代碼就是所有有效和工作原理:
#import <Cocoa/Cocoa.h>
@interface TheAppDelegate : NSObject <NSApplicationDelegate> {
NSUInteger value;
}
@property NSUInteger otherValue;
- (NSUInteger) value;
- (void) setValue:(NSUInteger)value;
@end
在我的.m:
#import "TheAppDelegate.h"
@implementation TheAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
value = self.otherValue = 1;
NSLog(@"%lu %lu", (unsigned long)value, (unsigned long)self.value);
NSLog(@"%lu %lu", (unsigned long)_otherValue, (unsigned long)self.otherValue);
self.value++;
self.otherValue++;
NSLog(@"%lu %lu", (unsigned long)value, (unsigned long)self.value);
NSLog(@"%lu %lu", (unsigned long)_otherValue, (unsigned long)self.otherValue);
}
- (NSUInteger) value
{
return value;
}
- (void) setValue:(NSUInteger)_value
{
value = _value;
}
@end
我的輸出:
在我的.h1 1
1 1
2 2
2 2
我相信這裏有一個技術文檔,我讀了這個解釋,但我不記得我在哪裏找到它。我相信它說的線沿線的東西:
x++
將得到改變,以x+=1
這x+=y
將x=x+y
而且所取代,x=y.a=z
將被替換爲y.a=z,x=y.a
(因爲當你處理屬性 - 不是結構)
相關問題
- 1. INT ++遞增4
- 2. 優化int遞增
- 3. 在Elm中遞增記錄屬性
- 4. Neo4j中的自動遞增屬性
- 5. 遞增CSS填充-top屬性在Javascript
- 6. App引擎數據存儲區 - 將屬性增量遞增2
- 7. 性能增益屬性
- 8. 遞增`靜態int`導致SIGSEGV SEGV_ACCERR
- 9. 將cookie值設置爲遞增int
- 10. 遞增值指向由INT *從結構*
- 11. 可選int屬性遷移
- 12. 隱藏INT屬性驗證
- 13. Java屬性 - int變爲空
- 14. 遞增非線性變量
- 15. tclientdataset的增量屬性
- 16. Knockout JS:增加屬性值
- 17. 自動增加xml屬性
- 18. 使用每種方法注入屬性與遞增值
- 19. 流利nhibernate自動遞增非鍵(Id)屬性
- 20. 設置自動遞增的XML節點屬性
- 21. 基於窗口大小遞增負值屬性
- 22. 在SQLAlchemy中使用自定義邏輯自動遞增屬性
- 23. 屬性的遞歸性
- 24. 提高增強屬性樹性能
- 25. 遞歸Subversion屬性
- 26. 遞歸CoreData屬性
- 27. 傳遞ID屬性
- 28. Python3屬性錯誤int對象沒有屬性
- 29. 增量int對象
- 30. 'int'對象沒有屬性'__getitem__'mxnet
好的,謝謝:) [blahblahblah,試圖填補這個評論,愚蠢的字符限制。] – Emil 2010-06-25 14:09:04