該專案主要介紹了oc與swift之間、swift內部幾種常見的傳值方式(屬性傳值、**塊傳值、**傳值、通知)
如果oc與swift之間的橋接有疑問請參考:oc與swift橋接互調
1、present方式跳轉@objc func btnaction(_ sender:uibutton);
nslog("������:%@____%@",sender,self);
}
2、返回
///1、編輯協議
@objc(fourvcdelegate)
protocol fourvcdelegate
///2、定義協議物件
@objc var mydelegate:fourvcdelegate?;
///3、呼叫協議
letstr:string = "**方法"
self.mydelegate?.backsupervc(str: str);
///1、呼叫協議
@inte***ce firvc ()///2、簽署協議
-(secvc *)sevc
return _sevc;
}///3、協議實現
///**塊定義
@property(nonatomic,strong)void (^thiblock)(nsstring *str);
///**塊實現
!self
.thiblock?:self
.thiblock(@"swift呼叫oc**塊");
let vc = thivc();
///**塊呼叫
///有引數無返回值
@objc func swmethod1(str: string)
///有引數有返回值
@objc func swmethod2(str: string) -> (string)
/// mark - **塊
///無返回引數
@objc func bkblock0(response:() -> ())
///返回乙個字串引數
@objc func bkblock1(response:(_ res : string) -> ())
///返回多個任意型別引數
@objc func bkblock_2_(response:(_ res : any,_ res1 : any) -> ())
///傳入多個引數 並返回多個任意型別的引數
@objc func bkblock3(p1:any,p2:any,p3:any,res:(_ res0 : any ,_ res1 : any ,_ res2:any,_ res3:any) -> ())
///block帶返回值
@objc func bkblock4(res:() -> ()) -> (string)
//定義block
typealias fucblock = (_ backmsg : string
?) ->()
func bkblock4(cmdstr:string
?,blockproperty:fucblock)
override func viewdidload()
override func didreceivememorywarning()
override func touchesbegan(_ touches: set, with event: uievent?) ;}}
fourvc *vc = [fourvc new];
// --- 屬性傳值 ---
vc.arr0 = @[@"可以",@"可以",@"可以"];
/// ------ 方法呼叫 -----
//無引數無返回值
[vc swmethod0];
//有引數無返回值
[vc swmethod1withstr:@"dasda"];
//有引數有返回值
nsstring *str = [vc swmethod2withstr:@"sdfasda"];
nslog(@"%@",str);
/// ------ **塊呼叫 -----
[vc bkblock0withresponse:^];
//有乙個返回值
[vc bkblock1withresponse:^(nsstring * str) ];
//有兩個返回值
[vc bkblock_2_withresponse:^(id str, id str1) ];
//有引數有返回值
///**塊
@property(nonatomic,strong)void (^clickblock)(void);
///字串
@property(nonatomic,copy)nsstring *titstr;
///方法
-(void)testaction;
@end
- (void)viewdidload
-(void)testaction
let sub = ocvc();
//屬性傳值
sub.titstr = "屬性傳值";
//方法呼叫
sub.testaction();
//**塊呼叫
OC與Swift的區別
a.b 表示 a,b 包括 a 和 b eg 3.5,就是範圍 3,4,5 a.元組型別元組 tuples 把多個值組合成乙個復合值。元組內的值可以是任意型別,並不要求型別一致。eg var value int,string x 15,y hello 使用常量,更加安全,不能夠被修改,在需要對物件進...
Swift與OC的混編
自2014年蘋果推出了swift之後,確實很快就受到許多開發者的歡迎但在實際開發時,可能有許多第三方庫並未實現 swift化,這時就需要swift與oc的混編技巧 1.在.件中引用swift的類和方法,需要在.件中進行引用,需要注意引用格式 import yourprojectname swift....
swift實現與OC的混編
現在寫swift,很多的類庫還不是很全,很多的第三方還是只有oc版的,這個時候swift想用,通常都是採用的swift和oc混編的方式.這裡給大家演示一下混編是如何做的.swift中使用oc oc中想要使用乙個類,必須引入這個類的標頭檔案,可是,可是swift中沒有標頭檔案啊 這怎麼辦呢?其實swi...