IwaoDev

この画面は、簡易表示です

2012/09/17

Cocoa Programming for Mac OS X 3 – 3

156 ページのコードを入力してビルドすると,
 int row = [a indexOfObjectIdenticalTo:p] ;
 /…/〜.m:145:12: Implicit conversion loses integer precision: ‘NSUInteger’ (aka ‘unsigned long’) to ‘int’
 最近は,C++ ばかりだったので int() でくくるとエラー.
 int row = int([a indexOfObjectIdenticalTo:p]) ;
 C の (int) とすれば OK.
 int row = (int)[a indexOfObjectIdenticalTo:p] ;


indexOfObjectIdenticalTo を右クリックして「Jump to Definition」
 - (NSUInteger)indexOfObjectIdenticalTo:(id)anObject;
さらに NSUInteger に飛ぶと,
 #if __LP64__ || (…) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
  typedef long NSInteger;
  typedef unsigned long NSUInteger;
 #else
  typedef int NSInteger;
  typedef unsigned int NSUInteger;
 #endif


ソースの拡張子を m から mm に変更することによって,int ( … ) も可能となるみたい.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。



top