-1
有什麼方法可以在屬性上調用或傳遞方法。我瞭解如何設置和獲取屬性,但我如何操作它們?我正在嘗試使用面向對象的編程去除字符串上的標點符號。從輸入字符串中刪除標點符號的行爲被寫爲一種方法。在屬性上調用方法
的main.m
TDItem *newItem = [[TDItem alloc] init];
[newItem setItemString:@"Get the mail next Tuesday!"];
NSLog(@"\nCreated Item: %@", [newItem itemString]);
NSString *itemStringWithoutPunctuation = [[NSString alloc] init];
[newItem itemStringWithoutPunctuation:[newItem itemString]];
[newItem setItemString:itemStringWithoutPunctuation];
NSLog(@"\nCreated Item: %@", [newItem itemString]);
TDItem.h
@interface TDItem : NSObject
@property NSString *itemString;
// Formating methods
- (NSString *)itemStringWithoutPunctuation:(NSString *)itemString;
TDItem.m
- (NSString *)itemStringWithoutPunctuation:(NSString *)itemString
{
NSString* itemStringWithoutPunctuation = [[itemString componentsSeparatedByCharactersInSet:[[NSCharacterSet letterCharacterSet] invertedSet]] componentsJoinedByString:@" "];
return itemStringWithoutPunctuation;
}
調試控制檯爲新的itemString值輸出空白。
Debuger
Created Item: Get the mail next Tuesday!
Created Item:
如果完全錯誤的去了解不斷變化的屬性值是什麼?
爲什麼你將'itemStringWithoutPunctuation'變量聲明爲'id'而不是'NSString'? – rmaddy
減少打字。在許多情況下,'id'可以用來代替'MyClass *'。 – iAdjunct
由於編譯器無法進行任何類型的檢查,因此使用'id'會導致各種錯誤。 – rmaddy