zoukankan      html  css  js  c++  java
  • NSInvocation调用

    CurrentDate.h

    #import <Foundation/Foundation.h>


    @interface CurrentDate : NSObject {

    }
    - (NSString *) stringForDate: (NSDate *)date
    usingFormatter: (NSDateFormatter
    *)formatter;

    @end

    CurrentDate.m

    #import "CurrentDate.h"


    @implementation CurrentDate

    - (NSString *) stringForDate: (NSDate *)date
    usingFormatter: (NSDateFormatter
    *)formatter
    {
    return [formatter stringFromDate: date];
    }

    @end

    main.m

    #import <Foundation/Foundation.h>
    #import
    "CurrentDate.h"

    //参考:http://theocacao.com/document.page/264
    int main (int argc, const char * argv[])
    {

    NSAutoreleasePool
    * pool = [[NSAutoreleasePool alloc] init];

    //原始调用
    NSDateFormatter * dateFormat = [[NSDateFormatter alloc]
    initWithDateFormat:
    @"%b %d %Y"
    allowNaturalLanguage: NO];
    CurrentDate
    * currentDateClassObject = [[CurrentDate alloc] init];
    NSString
    * currentDate = [currentDateClassObject
    stringForDate: [NSDate date]
    usingFormatter: dateFormat];
    NSLog(
    @"currentDate: %@", currentDate);


    //NSInvocation调用
    SEL mySelector = @selector(stringForDate:usingFormatter:);
    NSMethodSignature
    * sig = [[currentDateClassObject class]
    instanceMethodSignatureForSelector: mySelector];

    NSInvocation
    * myInvocation = [NSInvocation invocationWithMethodSignature: sig];
    [myInvocation setTarget: currentDateClassObject];
    [myInvocation setSelector: mySelector];

    NSDate
    * myDate = [NSDate date];
    [myInvocation setArgument:
    &myDate atIndex: 2];

    NSDateFormatter
    * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle: NSDateFormatterMediumStyle];
    [myInvocation setArgument:
    &dateFormatter atIndex: 3];

    NSString
    * result = nil;
    [myInvocation retainArguments];
    [myInvocation invoke];
    [myInvocation getReturnValue:
    &result];
    NSLog(
    @"The result is: %@", result);


    [pool drain];
    return 0;
    }

  • 相关阅读:
    win10安装mysql5.7.20解压版
    mvn snapshot
    git SSH key
    Grails踩坑记
    oracle数据库中使用hibernate生成表不能正确创建表
    有些人
    制定短期计划(3月9-4.29)
    有些话
    Linux中mysql主从复制
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/2022197.html
Copyright © 2011-2022 走看看