带参数的iPhone SDK函数/方法

带参数的iPhone SDK函数/方法,iphone,objective-c,function,methods,Iphone,Objective C,Function,Methods,我正在创建一个应用程序,在该应用程序中,我多次执行相同的操作。我将尽可能少的代码,我不想重复我自己 我需要一个可重用函数的PHP等价物,在这里我设置了一个输入,该函数将返回输出 该应用程序是一个URL缩短器,因此您可以假设输入是一个URL,输出是一个简短的URL 最好的办法是什么?我知道我可以对同一件事编写两次代码,但我讨厌重复我自己 希望我能把我的观点讲清楚。非常感谢您的帮助。 -Giles如果我过分简化了你的问题,我深表歉意,但你是在问如何定义Objective-C方法吗?如果是这样,你将不

我正在创建一个应用程序,在该应用程序中,我多次执行相同的操作。我将尽可能少的代码,我不想重复我自己

我需要一个可重用函数的PHP等价物,在这里我设置了一个输入,该函数将返回输出

该应用程序是一个URL缩短器,因此您可以假设输入是一个URL,输出是一个简短的URL

最好的办法是什么?我知道我可以对同一件事编写两次代码,但我讨厌重复我自己

希望我能把我的观点讲清楚。非常感谢您的帮助。
-Giles

如果我过分简化了你的问题,我深表歉意,但你是在问如何定义Objective-C方法吗?如果是这样,你将不得不学习Objective-C,没有办法:

-

在iPhone和Mac平台上,你可以不用代码就完成很多伟大的事情,但是如果不编写一些代码,很难想象完成任何有用的应用程序

示例

- (float)multiplyThisFloatByTwoPointFive:(float)numberToMultiply
{
     return numberToMultiply * 2.5;
}
称之为:

[self multiplyThisFloatByTwoPointFive:3.7];

如果您的意思是“我想把这些非特定于类的方法放在一个我可以普遍访问它们的地方”,例如,一个库,您可以通过两种方式来实现:

  • 创建某种“库”类,如“MySpecialMathClass”(不要与“我的特殊教育数学课”或“MyAppAnimationTricks”混淆),并将方法放在那里(根据Objective-C,您可以将它们定义为+someMethod:not-someMethod:,class-not-instance方法)
  • <>如果它们只处理基元(例如int、浮点、双…),考虑只将它们变成C函数,而不是Objto-C方法。
    如果我过分简化了你的问题,我深表歉意,但你是在问如何定义Objective-C方法吗?如果是这样,你将不得不学习Objective-C,没有办法:

    -

    在iPhone和Mac平台上,你可以不用代码就完成很多伟大的事情,但是如果不编写一些代码,很难想象完成任何有用的应用程序

    示例

    - (float)multiplyThisFloatByTwoPointFive:(float)numberToMultiply
    {
         return numberToMultiply * 2.5;
    }
    
    称之为:

    [self multiplyThisFloatByTwoPointFive:3.7];
    

    如果您的意思是“我想把这些非特定于类的方法放在一个我可以普遍访问它们的地方”,例如,一个库,您可以通过两种方式来实现:

  • 创建某种“库”类,如“MySpecialMathClass”(不要与“我的特殊教育数学课”或“MyAppAnimationTricks”混淆),并将方法放在那里(根据Objective-C,您可以将它们定义为+someMethod:not-someMethod:,class-not-instance方法)
  • <>如果它们只处理基元(例如int、浮点、双…),考虑只将它们变成C函数,而不是Objto-C方法。
    在这方面我几乎是个新手,但您当然可以用Objective C编写函数(而不是方法)

    我最近写了几个实用函数。我创建了一个NSObject文件来放置它们,但它没有声明IVAR或方法,只有函数。然后实现.m文件中的函数,并将.h文件导入到需要函数的任何类文件中。显然,您可以从导入函数文件的任何.m文件中的任何位置调用这些函数


    约翰·多纳(John Doner)

    我在这方面是个新手,但你肯定可以用Objective C编写函数(而不是方法)

    我最近写了几个实用函数。我创建了一个NSObject文件来放置它们,但它没有声明IVAR或方法,只有函数。然后实现.m文件中的函数,并将.h文件导入到需要函数的任何类文件中。显然,您可以从导入函数文件的任何.m文件中的任何位置调用这些函数


    John Doner

    从技术上讲,没有什么能阻止他对objective-C对象使用C函数,这似乎是人们普遍不赞成的。我可能会把它放在某个单独的类中(app delegate?),或者像你提到的那样作为一个类上的静态方法。从技术上来说,不仅没有什么东西能阻止他,而且这很常见。我很好奇为什么有人会反对它——Objective-C是C的超集。我提到C函数用于C-primitive-only例程,因为如果调用非常频繁,您会获得一些速度,从而减少Obj-C消息调度开销。在高吞吐量计算中,这会产生巨大的差异。当然,首先要测量。:-)从技术上讲,并没有什么能阻止他对objective-C对象使用C函数,这似乎是人们普遍不赞成的。我可能会把它放在某个单独的类中(app delegate?),或者像你提到的那样作为一个类上的静态方法。从技术上来说,不仅没有什么东西能阻止他,而且这很常见。我很好奇为什么有人会反对它——Objective-C是C的超集。我提到C函数用于C-primitive-only例程,因为如果调用非常频繁,您会获得一些速度,从而减少Obj-C消息调度开销。在高吞吐量计算中,这会产生巨大的差异。当然,首先要测量。:-)可能重复的可能重复的地方是代码示例;(这是对“是的,你可以”的漂亮回答。代码示例在哪里;(这是对“是的,你可以”的漂亮回答。)