iOSアプリ開発:deprecated対応メモ:NSString

Filed under iOS SDK, トラブルシューティング
Tagged as ,

使い勝手がよいオープンソースライブラリでもメンテナンスがされていないと、使われているメソッドが新しいiOS SDKでdeprecated(非推奨)になってしまい、警告が出ることがあります。
昨今は開発している人も多いのでググるとすぐに見つかるのですが、引数が増えていたりして対応がわかりにくいことがあります。
自分でぱっと見で分かりやすいように、メモを残していきたいと思います。

【NSString】 – sizeWithFont:

Warning: ‘sizeWithFont:’ is deprecated: first deprecated in iOS 7.0 – Use -sizeWithAttributes:

・公式リファレンス → sizeWithAttributes: – NSString UIKit Additions Reference

// 素材.
NSString* str = @"hogehoge";
UIFont* myFont = [UIFont systemFontOfSize:14];
 
// OLD.
CGSize size = [str sizeWithFont:myFont];
 
// NEW.
NSDictionary* dicFontAttr = @{ NSFontAttributeName:myFont };
CGSize size = [str sizeWithAttributes:dicFontAttr];

【NSString】 – drawAtPoint:withFont:

Warning: ‘drawAtPoint:withFont:’ is deprecated: first deprecated in iOS 7.0 – Use -drawAtPoint:withAttributes:

・公式リファレンス → drawAtPoint:withAttributes: – NSString UIKit Additions Reference

// 素材.
NSString* str = @"hogehoge";
UIFont* myFont = [UIFont systemFontOfSize:14];
 
// OLD.
[str drawAtPoint:p withFont:myFont];
 
// NEW.
NSDictionary* dicFontAttr = @{
  NSFontAttributeName:myFont,
  NSForegroundColorAttributeName:textColor }; // テキストの色はここで指定.
[str drawAtPoint:p withAttributes:dicFontAttr];

【NSString】 – drawInRect:withFont:lineBreakMode:alignment:

Warning: ‘drawInRect:withFont:lineBreakMode:alignment:’ is deprecated: first deprecated in iOS 7.0 – Use -drawInRect:withAttributes:

// 素材.
NSString* str = @"hogehoge";
UIFont* myFont = [UIFont systemFontOfSize:14];
CGRect rectArea = CGRectMake(0, 0, 320, 50);
 
// OLD.
[str drawInRect:rectArea
       withFont:myFont
  lineBreakMode:NSLineBreakByWordWrapping
      alignment:NSTextAlignmentCenter];
 
// NEW.
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineBreakMode = NSLineBreakByWordWrapping;
style.alignment = NSTextAlignmentCenter;
NSDictionary *attributes = @{
  NSForegroundColorAttributeName:textColor,
  NSFontAttributeName:myFont,
  NSParagraphStyleAttributeName:style
};
[str drawInRect:rectArea withAttributes:attributes];

[AD]↓評判がいいので私も買いました!

基礎からわかる Swift

著者/訳者:坂本 俊之

出版社:シーアンドアール研究所( 2014-11-20 )

定価:¥ 2,484

Amazon価格:¥ 2,484

単行本(ソフトカバー) ( 248 ページ )

ISBN-10 : 4863541589

ISBN-13 : 9784863541580


[AD]↓kindle版を買って読んでいます!

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)