【问题标题】:method with return type class object具有返回类型类对象的方法
【发布时间】:2016-01-21 03:58:02
【问题描述】:

用

写一个方法

返回类型 MyClass 对象并带有多个参数

我试过了

-(MyClass *Obj)mymethod:(NSString*)name withAge:(int)age
{
//do stuff
Obj.name=name;
Obj.age=age;
return Obj;
}

在我想调用上述函数的其他类中,我如何调用它?

【问题讨论】:

  • 你的意思是类似于单例类吗?
  • 是的,检查修改后的问题,我在其他班级如何称呼它?

标签: ios objective-c iphone xcode singleton


【解决方案1】:

你可以这样写方法:

 -(MYClass *)myMEthod:(NSString *) name withAge:(int)age
   {
         MYClass *myObj=[[MYClass alloc]init];
         myObj.name=name;
         myObj.age=age;

        return myObj;
    }

如果你希望它是单例的,那么使用静态对象和 dispatch_once

要使其成为单例:

 +(MYClass *)myMEthod:(NSString *) name withAge:(int)age
   {
        static MYClass *_myObj=nil;

        static dispatch_once_t oncePredicate;
    dispatch_once(&oncePredicate, ^{
        _myObj = [[MYClass alloc]init];
    });
          _myObj.name=name;
          _myObj.age=age;
        return _myObj;

    }

在其他类中,你可以简单地导入这个类,并调用它

  [MYClass myMethod:@"" withAge:12];

【讨论】:

  • 我需要获取返回类型 MYClass 才能进入其他变量,就像我们简单地使用其他返回类型方法 NSString getResponse=[self mymethod:@"good"]; -(NSString)mymethod:(NSString*)setname { returen setname; }
  • 是的,你可以这样做 myClassObj=[MYClass myMEthod:@"" withAge:12];
  • 表示 MYClass * myClassObj=[MYClass myMEthod:@"" withAge:12];或 CurrentClass *myClassObj=[MYClass myMEthod:@"" withAge:12]; CurrentClass 是我调用它的类?
  • 不,您不应该使用当前类对象,您应该始终使用 MYClass obj 来存储 MYClass obj 的引用。
猜你喜欢
  • 1970-01-01
  • 2013-04-16
  • 2021-12-15
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
相关资源
最近更新 更多