You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/06/07 08:08:16 UTC
[17/50] incubator-weex git commit: * [ios] try to fix text crash
* [ios] try to fix text crash
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b1070991
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b1070991
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b1070991
Branch: refs/heads/0.14-dev
Commit: b1070991edd41a2e78eb55d204a2df16efb83d4d
Parents: 3a98c09
Author: acton393 <zh...@gmail.com>
Authored: Thu Jun 1 14:47:54 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Jun 2 10:27:00 2017 +0800
----------------------------------------------------------------------
.../WeexSDK/Sources/Component/WXTextComponent.m | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b1070991/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
index d370964..f560aef 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTextComponent.m
@@ -349,9 +349,9 @@ do {\
});
}
-- (NSMutableAttributedString *)buildCTAttributeString {
-
- NSString *string = [self text] ?: @"";
+- (NSMutableAttributedString *)buildCTAttributeString
+{
+ NSMutableString *string = [NSMutableString stringWithFormat:@"%@", [self text] ?: @""];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
if (_color) {
[attributedString addAttribute:NSForegroundColorAttributeName value:_color range:NSMakeRange(0, string.length)];
@@ -745,7 +745,18 @@ do {\
// default truncationType is kCTLineTruncationEnd
CTLineTruncationType truncationType = kCTLineTruncationEnd;
NSAttributedString *attributedString = [self buildCTAttributeString];
- NSAttributedString * lastLineText = [attributedString attributedSubstringFromRange: WXNSRangeFromCFRange(CTLineGetStringRange(lastLine))];
+ NSAttributedString * lastLineText = nil;
+ @try {
+ lastLineText = [attributedString attributedSubstringFromRange: WXNSRangeFromCFRange(CTLineGetStringRange(lastLine))];
+ } @catch (NSException *exception) {
+ lastLineText = attributedString;
+ } @finally {
+ if (!lastLineText) {
+ lastLineText = attributedString;
+ }
+ //nothing
+ }
+
NSMutableAttributedString *mutableLastLineText = lastLineText.mutableCopy;
[mutableLastLineText appendAttributedString:truncationToken];
CTLineRef ctLastLineExtend = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)mutableLastLineText);