2012-06-15 44 views
0

我想在另一個UIView中從一個UIView使用NSStringUIViews之間的NSString轉換

我有兩種方法在第一個UIView中創建NSString

NSString *firstNameTemp = [[[[html componentsSeparatedByString:@"<first_name>"] objectAtIndex:1] componentsSeparatedByString:@"</first_name>"] objectAtIndex:0]; 
NSString *lastNameTemp = @"Михаил"; 

如果我使用NSLog我得到同樣的思路在兩種情況下:

2012-06-15 16:21:54.778 VKLike[22718:707] –Ь–Є—Е–∞–Є–ї 
2012-06-15 16:21:54.790 VKLike[22718:707] –Ь–Є—Е–∞–Є–ї 

有含編碼的問題,但如果我創建UILabelNSString它顯示正確的字符串(Михаил)。

在第二UIView如果使用方法

- (void) initPhotoViewWithFrame:(CGRect)frame Image:(UIImage *)image Name:(NSString *)name; 

當我嘗試使用firstNameTemp我得到一個錯誤。

但是,如果我用姓氏溫度但我得不到。

的問題是:如何順利通過第一NSStringfirstNameTemp)?

+0

因爲它在標籤中顯示正確的字符串,所以請將yourlable.text(它也是字符串)傳遞給另一個視圖。 –

+0

這是最不可取的方法。因爲在第一個UIView我只有UIWebView – iWheelBuy

+0

>>有編碼問題,但如果我用NSString創建UILabel它顯示正確的字符串(Михаил)。 - 看看我的問題http://stackoverflow.com/questions/10950805/debugger-console-encoding-in-xcode-is-broken - 希望它有幫助 –

回答

1

這是內存管理錯誤。你必須保留firstNameTemp(以後再發布它)。嚴格來說,對於lastNameTemp也是如此,但是該錯誤並未出現,因爲字符串文字(@"...")由編譯器創建,並且只要進程處於活動狀態即可生效。

+0

太棒了!有用!還有一個問題:我應該在initPhotoViewWithFrame方法還是在第一個UIView dealloc中釋放它? – iWheelBuy