NSString 从返回方法返回空 [英] NSString returns empty from a return method
本文介绍了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屋!
查看全文