我想要做的是使用方法从另一个类获取NSInteger,然后使用在IBAction中获取的值。

所以在我的.h文件中,我有:

@property (nonatomic) NSInteger row;
-(void) selectedRow : (NSInteger) selectedRow;
-(IBAction)changeName:(id)sender;


在我的.m文件中:

@synthesize row;

-(void) selectedRow : (NSInteger) selectedRow {

    row = selectedRow; //I tried also self.row

}

-(IBAction)changeName:(id)sender {

    NSLog(@"row = %lu", (long)row); //To keep it simple.


当我在行上调试时,它告诉我,该行获得了另一个类的值,但在IBAction中为0。

能否请别人告诉我我做错了什么?

最佳答案

尝试这个...

-(void) selectedRow : (NSInteger) selectedRow {

    //row = selectedRow; //I tried also self.row
    [[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"Row"];
}

-(IBAction)changeName:(id)sender {

    NSInteger selectedRow = [[NSUserDefaults standardUserDefaults] integerForKey:@"Row"];
    NSLog(@"row = %ld",(long)selectedRow); //To keep it simple.
}


斯威夫特4

func selectedRow(selectedRow:Int) -> Void {

    UserDefaults.standard .set(selectedRow, forKey: "Row")
}

@IBAction func changeName(_ sender: AnyObject) {

    let selectedRow = UserDefaults.standard .integer(forKey: "Row")
    print("row = \(selectedRow)")
}

08-19 12:21