你在@interface中定义一个 stringInt的变量,然后在方法一中赋值,方法二中就可以直接用了。(PS:[longpress addTarget:self action:@selector(longpressView)]; 这句多余)

解决方案 »

  1.   

    有很多办法的,如果你不想创建楼上所说的属性,可以通过使用关联对象来处理:添加头文件引用:#import <objc/runtime.h>
    在方法1使用代码:    NSString *stringInt = [NSString stringWithFormat:@"%d-%d计划", month,day];
        objc_setAssociatedObject(longpress, &StringIntForLongPress, stringInt, OBJC_ASSOCIATION_COPY);
    在方法二中添加代码:    NSString* stringInt = objc_getAssociatedObject(recognizer, &StringIntForLongPress);
    这种方法通常很少用,多数用于多个UIAlertView的用户反馈处理,要留意其中的OBJC_ASSOCIATION_COPY内存管理语义,保证stringInt被‘复制’,从而避免内存泄露或者变量值变更问题。具体可以查找相关资料
      

  2.   

    啊,忘记了,要定义一个文件作用域的常量:static const char StringIntForLongPress;
    不用赋值,因为objc_get/set AssociatedObject 只是需要一个唯一的key就可以了,不同的变量地址一定是不同的