2012-04-25 36 views
1

我想对使用iOS 3.0开发的代码执行更改,以便它可以在iOS 5.0上运行。在ios 5.0中将控件的标签属性设置为字符串

但问题是这样的,在iphone不采取在安装iOS 5.0的NSString值的任何控制的tag财产,而在iOS 3.0没有分配tagNSString相关的问题。

我在的iOS 5.0得到这样的警告:

[email protected]"lblPatientDetail"; 

"incompatible pointer to integer conversion assigning to integer'(aka 'int') from NSString" 

这个警告是目前遍布这是造成大量问题的项目。

那么我们可以在iOS 5.0中将NSString指定为tag的值吗?

回答

1

如果您想通过字符串识别对象,请改用NSDictionary。我将在下面提供如何使用NSDictionary的例子。

NSDictionary *dictionary; 
NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3", nil]; 

NSArray *objects = [NSArray arrayWithObjects:@"How", @"are", @"you", nil]; 

dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 

for (id key in dictionary) { 

    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]); 

} 
1

UIView tag属性是一个NSInteger,所以你不能给它分配一个字符串值。您的问题的直接解决方案是使用整数值作为标记,而不是字符串。

+0

好的谢谢,我会这样做。 – 2012-04-25 05:17:53

1

这样做有两种可能的方式,如果你专门找字符串(与任何这样你实际上必须使用int) -

  1. 创建这些字符串值的枚举,然后使用枚举。

  2. 可以通过使用intValue方法将字符串转换为int。

+0

谢谢rip我会用这种方式尝试 – 2012-04-25 05:19:07

0

添加micro来存储NSInteger和使用micro作为字符串。

+0

谢谢ayaz我会尝试 – 2012-05-12 10:57:49

相关问题