1

我想对使用 iOS 3.0 开发的代码进行更改,以便它可以在 iOS 5.0 上运行。

但问题是,tagiphone 中任何控件的属性NSString在 iOS 5.0 中都没有取值,而在 iOS 3.0 中没有与 assign tagas a相关的问题NSString

我在 iOS 5.0 中收到此警告:

lview.tag=@"lblPatientDetail";

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

此警告存在于整个项目中,导致大量问题。

那么有没有一种方法可以让我们在 iOS 5.0中分配NSString一个值?tag

4

4 回答 4

1

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

于 2012-04-25T05:15:30.887 回答
1

如果您专门寻找字符串(使用任何这种方式,您实际上必须使用 int),有两种可能的方式来执行此操作 -

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

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

于 2012-04-25T05:16:43.823 回答
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]);

}
于 2012-06-29T03:50:05.483 回答
0

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

于 2012-04-25T05:19:46.793 回答