Iphone 如何使用Self-Like[Self-Method_-Name]调用方法;当方法名称非常长时,如-(void)imagePickerController:(UIImagePickerController*)

Iphone 如何使用Self-Like[Self-Method_-Name]调用方法;当方法名称非常长时,如-(void)imagePickerController:(UIImagePickerController*),iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我是iPhone开发新手。我想知道如何使用self调用方法,如: [self Method_Name]; 当方法名很长时,如 - (void)imagePickerController: (UIImagePickerController *)picker didFinishPickingImage: (UIImage *)image editingInfo: (NSDictionary *)editingInfo { ... } 我

我是iPhone开发新手。我想知道如何使用
self
调用方法,如:

[self Method_Name];
当方法名很长时,如

- (void)imagePickerController: (UIImagePickerController *)picker
        didFinishPickingImage: (UIImage *)image
                  editingInfo: (NSDictionary *)editingInfo
{
    ...
}
我们想使用
self
调用
imagePickerController
方法。我试着用:

 [self imagePickerController]; // Crash Here
但是代码总是在这一行崩溃。如何调用该方法

[self imagePickerController: pickerParameter
    didFinishPickingImage: imageParameter
    editingInfo: editingInfoParameter];

xxx参数是要传递给方法的参数。

这将自动调用。 但是在回答你关于如何调用这些方法的问题时,应该像这样做

[self imagePickerController: picker
didFinishPickingImage: image
editingInfo: editingInfo];
但不需要调用此委托方法。它会自动调用


希望能有帮助。快乐编码:)

如果您正在调用像
[self-method\u-name]
这样的方法。然后方法应该在该类的(.h)文件中声明(如果您想在另一个类中访问此方法,否则不需要在.h中声明),并且该方法应该在同一个类的(.m)文件中定义。您可以像这样调用任何方法

// in .h file

- (void)imagePickerController: (UIImagePickerController *)picker
didFinishPickingImage: (UIImage *)image
editingInfo: (NSDictionary *)editingInfo;

// cal this in .m as following  

[self imagePickerController:pickerController
didFinishPickingImage: imageNamed
editingInfo: editDictionary ];

imagePickerController
不是方法名称。方法名为

imagePickerController: didFinishPickingImage:  editingInfo: 
它有三个参数,您必须传递参数

在同一个类中调用方法时,可以编写如下代码

[self imagePickerController: pickerParameter
    didFinishPickingImage: imageParameter
    editingInfo: editingInfoParameter];

编写method.m文件的定义,如下所示:

    #import "classname.h"

    @implementation classname

    @synthesis variable1 = <variable1_>;

    @synthesis .....;

    -(void)imagePickerController: (UIImagePickerController *)picker
    didFinishPickingImage: (UIImage *)image
    editingInfo: (NSDictionary *)editingInfo {

      // Your code for this method comes here.

    }
    [self imagePickerController: UIImagePickerControllerObject
    didFinishPickingImage: UIImageObject
    editingInfo: NSDictionaryObject];

这是UIImagePickerController的委托方法..它将自己调用,您不必手动调用。。只需实现UIImagePickerControllerDelegate。。有关如何调用此方法的更多详细信息,我需要使用“self”调用此方法?但为什么要手动调用此方法,因为它将自动调用。我在另一个方法中使用if-else条件,我必须调用此方法,因为在此方法中-(void)imagePickerController:。。。。。。我使用alertview n alertview if(on1==True){UIalertview*alrt….},因此在另一个方法on==True中,在此之后我必须调用[self-imagePickerController];因此,UIAlertview将显示…Read不一定是头文件,但如果实例是用不同的方法创建的,则需要公开对象方法+1因为所有的答案几乎都一样,我对所有的答案都投了赞成票。你是对的,亲爱的。。。!!h中的任何方法声明都是为了访问另一个类中的该方法。