如何传递unichar对象?

时间:2010-08-26 05:42:58

标签: iphone objective-c cocoa

我需要将一个角色传递给第一行。 2:我试过的第一种方法,

1) unichar dicttxt = [[myword lowercaseString] characterAtIndex:0];

   2) fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType: @"txt"];

我试过的第二种方法,

NSString *dicttxt = [[myword lowercaseString] characterAtIndex:0];

fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType: @"txt"];

两种方法都提示错误Make pointer from integer without a cast.

2 个答案:

答案 0 :(得分:6)

使用:

,而不是使用字符
NSString *dicttxt = [[myword lowercaseString] substringWithRange:NSMakeRange(0, 1)];
fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType:@"txt"];

或者(我完全忘记了这个方法),以下功能与上述相同,但更简洁:

NSString *dicttxt = [[myword lowercaseString] substringToIndex:1];
fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType:@"txt"];    

这些只会起作用:

  1. myword的长度至少为1。
  2. myword不以复合字符开头(即“café”很好,但“über”可能不是)。

答案 1 :(得分:1)

Dreamlax的答案是正确的,但它没有解决您的问题的原因:unichar不是一个类,并且没有unichar对象这样的东西。如果您在Xcode中双击unichar命令,则会显示声明:

typedef unsigned short unichar;

换句话说,unichar是原始整数类型unsigned short的别名。