Objective c 在自定义setter中自动修剪NSString?

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。我想为这个属性使用一个自定义的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。对不起,我应该指定的。设定器不带弧是否不同?谢谢!这正是我需要的。