Objective c 在自定义setter中自动修剪NSString?
我有一个对象,带有属性的NSString。我想为这个属性使用一个自定义的setter,以便在设置字符串时总是修剪所有的空白 通常这是通过Objective c 在自定义setter中自动修剪NSString?,objective-c,ios,nsstring,setter,getter-setter,Objective C,Ios,Nsstring,Setter,Getter Setter,我有一个对象,带有属性的NSString。我想为这个属性使用一个自定义的setter,以便在设置字符串时总是修剪所有的空白 通常这是通过NSString*blah2=[blah stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]完成的,但我不确定如何为自定义setter制定此规则。在setter中使用这样的自动释放对象不是很糟糕吗?我应该使用可变字符串,然后将其转换为不可变字符串吗
NSString*blah2=[blah stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]完成的代码>,但我不确定如何为自定义setter制定此规则。在setter中使用这样的自动释放对象不是很糟糕吗?我应该使用可变字符串,然后将其转换为不可变字符串吗
谢谢你们提供的任何帮助。我要假设ARC
#import <Foundation/Foundation.h>
@interface Foo:NSObject
@property (nonatomic,copy) NSString *myString;
@end
@implementation Foo
@synthesize myString = _myString;
- (void)setMyString:(NSString *)aString;
{
_myString = [[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] copy];
}
@end
int main(int argc, char *argv[]) {
@autoreleasepool {
Foo *someFoo = [[Foo alloc] init];
someFoo.myString = @"Blah ";
NSLog(@"Length = %ld",[[someFoo myString] length]); // prints 4
}
}
我要假设弧
#import <Foundation/Foundation.h>
@interface Foo:NSObject
@property (nonatomic,copy) NSString *myString;
@end
@implementation Foo
@synthesize myString = _myString;
- (void)setMyString:(NSString *)aString;
{
_myString = [[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] copy];
}
@end
int main(int argc, char *argv[]) {
@autoreleasepool {
Foo *someFoo = [[Foo alloc] init];
someFoo.myString = @"Blah ";
NSLog(@"Length = %ld",[[someFoo myString] length]); // prints 4
}
}
我没有用弧。对不起,我应该指定的。设定器不带弧是否不同?谢谢!这正是我需要的。我没有使用ARC。对不起,我应该指定的。设定器不带弧是否不同?谢谢!这正是我需要的。