你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS技巧綜合 >> 關於 object

關於 object

編輯:IOS技巧綜合
[摘要]本文是對關於 object-c的@protocol的理解的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。

從java角度來理解

@protocol 相當於 java 的接口定義,用法也一樣

下面是試驗例子

@protocol mytestClass <NSObject>

- (void) callback:(int) num;

@end

@interface DiscoveryController : UIViewController<mytestClass>{
    UIImageView *imageView;
    
}
-(UIImage *) getImageFromURL:(NSString *)fileURL;

@end

  在這裡定義了protocol並由類

DiscoveryController實現此接口

@interface MyCallBack : NSObject
{
    id<mytestClass> deleage;
}
@property(nonatomic,retain) id<mytestClass> deleage;
- (void)setRun;
@end

  

MyCallBack中保存從其它類傳過來的
deleage當需要時進行回調。

//
//  MyCallBack.m
//  ACMobile
//
//  Created by mr.liang on 15/1/22.
//  Copyright (c) 2015年 mr.liang. All rights reserved.
//

#import "MyCallBack.h"

@implementation MyCallBack
@synthesize deleage;

- (void) runThread
{
    NSLog(@"我在運行");
    [NSThread sleepForTimeInterval:2];
    [deleage callback:1];
}

- (void)setRun
{
    NSThread *callbackthread = [[NSThread alloc] initWithTarget:self selector:@selector(runThread) object:nil];
    [callbackthread start];
}
@end

  這裡通過線程進行異步回調會讓程序更加直觀。

    MyCallBack *vv = [[MyCallBack alloc] init];
    vv.deleage = self;
    [vv setRun];

  需要用到protocol的地方實現這個protocol並傳送指針;

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved