我打算推定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
}
}
在傳,我做複製事件有人裝定參數試圖提供的NSMutableString
實例 - 假設這Foo
預計不會修改原始字符串。
編輯: 或者,如果手動引用計數,二傳手可能是:
- (void)setMyString:(NSString *)aString;
{
if(aString != _myString) {
[_myString release];
_myString = [[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] copy];
}
}
我不使用ARC。抱歉,應該指定。是不是沒有ARC? – DOOManiac
謝謝!這正是我需要的。 – DOOManiac