我有一个不寻常的问题,我不知道为什么:
我有以下方法:
- (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”字符串返回空。
我必须指出,在调用return之前,“aString”中包含值。
知道为什么会这样吗?
谢谢 !
最佳答案
编辑:看一下
NSString *profileSection = [NSString string]; //reference created
再次当profileSection作为aString传入方法时:
aString = [NSString stringWithString:initialString]; //new reference created
现在profileSection永远无法容纳引用不同的字符串。
使您的函数返回一个新的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);
关于objective-c - NSString从return方法返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636127/