指向整数发送的不兼容指针' UITextField *

时间:2015-06-24 15:08:33

标签: ios objective-c uitextfield warnings

我的UITextField存在问题

我希望用户输入日期以运行通知,我在.m

中使用它
  [dateComponent setWeekday:1]; // For sunday
  [dateComponent setHour:timeHClass];
  [dateComponent setMinute:timeMClass];

和.h

  @property (retain, nonatomic) IBOutlet UITextField *timeHClass;
  @property (retain, nonatomic) IBOutlet UITextField *timeMClass;

但它向我显示了这个警告:

incompatible pointer to integer sending 'UiTextField*__strong' to parameter of type 'NSInteger' (aka 'long')

4 个答案:

答案 0 :(得分:0)

你应该这样做:

[dateComponent setHour:[timeHClass.text integerValue]];
[dateComponent setMinute:[timeMClass.text integerValue]];

您希望在字段中输入文本并将其与日期组件一起使用。

说明:timeHClass对象是UITextField,因此您要访问它的text属性,即NSString个对象,并将其转换为{{ 1}}价值。您还应确保文本字段为数字。

答案 1 :(得分:0)

您正在将类的UITextField属性设置为小时和分钟组件。这些字段调用整数,就像使用[dateComponent setWeekday:1];一样。

答案 2 :(得分:0)

您正尝试将指向UITextField *对象的指针作为参数发送,而该参数应该是NSInteger。尝试:

[dateComponent setHour:[timeHClass.text integerValue]];

但要非常小心这种类型的转换,用户可能会输入您不想要的内容。您必须事先检查输入文本以避免不可预测的行为。

答案 3 :(得分:0)

您必须获取文本字段的内容,而不是文本字段本身:

[dateComponent setWeekday:1]; // For sunday
[dateComponent setHour:[timeHClass.text integerValue]];
[dateComponent setMinute:[timeMClass.text integerValue];