NSString 从返回方法返回空 [英] NSString returns empty from a return method

查看:60
本文介绍了NSString 从返回方法返回空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个不寻常的问题,我不知道为什么:

I have an unusual issue and I can't figure out why:

我有以下方法:

 - (NSString*) copyAndReplaceOccurencesForProfileFromString: (NSString*)initialString toString:(NSString*)aString
{

        aString = [NSString stringWithString:initialString];
        DLog(@"PROFILE INITIAL HTML STRING: %@", initialString);

        aString = [aString stringByReplacingOccurrencesOfString:@"//PROFILE_IMAGE//" withString:profileImageForHTML];
        aString = [aString stringByReplacingOccurrencesOfString:@"//PROFILE_NAME//" withString:profileBirthNameString];
        aString = [aString stringByReplacingOccurrencesOfString:@"//PROFILE_BIRTHDATE//" withString:profileDateOfBirthString];
        return aString;
    }

是这样调用的:

    NSString *profileSection = [NSString string];
[self copyAndReplaceOccurencesForProfileFromString:htmlBody_profile toString:profileSection];
DLog(@"PROFILE MODIFIED HTML STRING: %@", profileSection);

但profileSection"字符串返回空.

but the "profileSection" string returns empty.

在调用 return 之前,我必须指出aString"中有值.

I must point out that "aString" has values in it before calling return on it.

知道为什么会这样吗?谢谢!

Any idea why is this happening ? Thanks !

推荐答案

EDIT : 看看

   NSString *profileSection = [NSString string]; //reference created

再次在 profileSection 作为 aString 传入方法时:

Again in when profileSection passed in method as aString:

   aString = [NSString stringWithString:initialString]; //new reference created

现在 profileSection 永远不能保存因引用不同而操作的字符串.

Now profileSection can never hold string manipulated as reference differs.

让你的函数返回一个新的 NSString.

Make your function return a new NSString.

- (NSString*) copyAndReplaceOccurencesForProfileFromString: (NSString*)initialString
{
        NSString *aString = [NSString stringWithString:initialString];
        DLog(@"PROFILE INITIAL HTML STRING: %@", initialString);

        aString = [aString stringByReplacingOccurrencesOfString:@"//PROFILE_IMAGE//" withString:profileImageForHTML];
        aString = [aString stringByReplacingOccurrencesOfString:@"//PROFILE_NAME//" withString:profileBirthNameString];
        aString = [aString stringByReplacingOccurrencesOfString:@"//PROFILE_BIRTHDATE//" withString:profileDateOfBirthString];
        return aString;
}

现在使用像:

NSString *profileSection = [self copyAndReplaceOccurencesForProfileFromString:htmlBody_profile];
DLog(@"PROFILE MODIFIED HTML STRING: %@", profileSection);

这篇关于NSString 从返回方法返回空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆