我喜歡通過傳遞一個init值有助於設置的值來創建自定義類的實例。我重寫的初始化和實際更改它:有關NSString NSInteger和方法調用的objective-c問題
- (id)initWithValue:(NSInteger *)initialValue;
我想這個值存儲在實例化對象的屬性和使用的價值生成將與它相關聯的一個UIImage的文件名。
我的問題是如何在Cocoa/Obj-C中做到最好。是一個NSInteger爲我的需要最好的參數或將NSString更好? 還是有另一種設計模式?我並不熟悉在這種情況下可用的所有創意方法。假設我的類屬性是:
@interface MyView : UIView {
UIImage *image;
NSInteger value;
如果我堅持使用NSInteger的作爲參數,我可以值輕鬆地分配給它。但是隨後需要從該值生成「image12.png」(假設NSInteger = 12)來設置我的UIImage。像「image」+ initialValue +「。png」。我相信的OBJ-C是冗長表示爲:
NSString *myValue = @"image";
[myValue stringByAppendingString:[initialValue stringValue]]; //NSInteger may not respond to stringValue?!?
[myValue stringByAppendingString:@".png"]
這是我的OBJ-C的理解分解。感覺像這樣應該會更容易,但我仍然感到困惑。
現在,如果initialValue是一個值爲@「12」的NSString,它可能是?那麼self.value = [initialValue integerValue];
我可以用多個stringByAppendingString調用來構建圖片。在其他語言中這麼簡單似乎很乏味。
什麼是最好的辦法來處理這樣的事情?
關於將NSInteger封裝在NSNumber中的好處! – Tim 2009-06-30 00:47:46
實際上有一個numberWithInteger:方法,因爲NSInteger出現在10.5中,你會在類似NSUserDefaults的地方看到類似的方法。 – 2009-06-30 00:58:55