2013-08-16 121 views
1

其实我有三个字符存储在NSArray中如何转换char类型输入ID

` 焦炭加= '+'; char minus =' - '; char multiply ='*';

NSArray *operator = [NSArray arraywithobjects : plus , minus ,multiply,nil];` 

很明显,我在NSarray中存储三个字符之前我有这些字符转换为ID。 所以如何将char转换为id.or指导我使用其他更好或更高效的技术,以便节省三个字符。

+0

你想存储为字符或字符串会被确定为char。也可以使用一个普通的C数组? – Mark

+0

为什么他们必须是char?如果您使用单个字符串(@“+”,@“ - ”,@“*”),将会更容易。 –

+0

或者如果它们是字符,就让它们被'NSNumber'封装为'int':NSArray * ops = @ [@(plus),@(minus),@(multiply)]'。顺便说一句,不要调用数组'operator' - 这是一个C++关键字。 – 2013-08-16 12:30:27

回答

2

使用NSNumber包装字符,例如,@(plus)并将其添加到运算符NSArray。 拿回来用[(NSNumber *)operator[index] charValue]

2
 // As we can not add primitive to NSArray , 
     // First we should convert it to NSString and then add it to NSArray 

     //'c' character string 
     char plus = '+'; 

     char minus = '-'; 

     char multiply = '*'; 


     //Converted to NSString object which was inherited from NSObject 
     NSString *plusObject = [NSString stringWithFormat:@"%c", plus]; 


     NSString *minusObject = [NSString stringWithFormat:@"%c", minus]; 


     NSString *multiplyObject = [NSString stringWithFormat:@"%c", multiply]; 


     //Add collection of NSString objects to NSArray 
     NSArray *operator = [NSArray 
       arrayWithObjects:plusObject , minusObject ,multiplyObject,nil]; 
相关问题