Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSString类别的自赋值_Objective C_Nsstring_Variable Assignment_Categories_Init - Fatal编程技术网

Objective c NSString类别的自赋值

Objective c NSString类别的自赋值,objective-c,nsstring,variable-assignment,categories,init,Objective C,Nsstring,Variable Assignment,Categories,Init,我想通过类别自行分配一个调整后的nsstring。 示例为修剪功能: 我不想这样: NSString *theTempString = [theExampleString xTrim]; // ... go on doing stuff with theTempString 我希望这样: [theExampleString xTrim]; // ... go on doing stuff with theExmapleString 类别如下所示: - (void)xTrim { se

我想通过类别自行分配一个调整后的nsstring。 示例为修剪功能:

我不想这样:

NSString *theTempString = [theExampleString xTrim];
// ... go on doing stuff with theTempString
我希望这样:

[theExampleString xTrim];
// ... go on doing stuff with theExmapleString
类别如下所示:

- (void)xTrim
{
    self = [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];

}
错误是无法在init之外进行赋值-我理解这一点。 但是现在我对它很感兴趣,当然我可以编写一个定制的init方法,但是没有像上面那样的方法吗

问候和感谢


matthias

您不需要创建新的NSString,该方法已经为您创建了:

- (NSString *)xTrim
{
    return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
NSString是不可变的,因此您需要分配它:

yourString = [yourString xTrim];

您不需要创建新的NSString,该方法已经为您创建了:

- (NSString *)xTrim
{
    return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
NSString是不可变的,因此您需要分配它:

yourString = [yourString xTrim];

您不能在
NSString
上的类别中执行此操作,因为
NSString
管理不可变字符串,这意味着在创建字符串后不能更改该字符串

您可以在
NSMutableString
上将其实现为类别:

- (void)xTrim
{
    NSString *trimmed = [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
    [self setString:trimmed]; // replaces the characters of "self" with those of "trimmed".
}
如果你的问题是:我能写一个方法
xTrim
这样吗

[theExampleString xTrim]

用一个新实例替换接收者的示例字符串:不,这是不可能的。

您不能在
NSString
上的类别中这样做,因为
NSString
管理不可变的字符串,这意味着在创建字符串后不能更改该字符串

您可以在
NSMutableString
上将其实现为类别:

- (void)xTrim
{
    NSString *trimmed = [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
    [self setString:trimmed]; // replaces the characters of "self" with those of "trimmed".
}
如果你的问题是:我能写一个方法
xTrim
这样吗

[theExampleString xTrim]

用一个新实例替换接收者
示例字符串
:不,这是不可能的。

该死,非常感谢你在a中给我点球……当然NSString不是可变的。。。啊…该死,非常感谢你在a中踢我一脚…当然NSString不是可变的。。。啊…该死,非常感谢你在a中踢我一脚…当然NSString不是可变的。。。啊…——妈的,非常感谢你在a中踢我一脚…当然NSString不是可变的。。。啊…——