顯而易見的事實是,Objective-C 中, 但看別人程式碼過程中,還會發現一種,不帶加減號的方法。 @implementation MyViewController
void foo(){
printf("msg from foo...");
}
- (void)loadView {
[super loadView];
foo();
}
@end
這種是混搭的 C 程式碼。 當然當 C 方法寫在 void foo(){
printf("msg from foo...");
}
@implementation MyViewController
- (void)loadView {
[super loadView];
foo();
}
@end
C 中獲取 Objective-C 的資料但如果你以為將 C 程式碼寫在 MyViewController.h @interface MyViewController ()
@property NSString *someStr;
@end
MyViewController.m @implementation MyViewController
// void foo() { printf(self.someStr); } // ? Use of undeclared identifier '_someStr'
void foo() { printf(_someStr); } // ? Use of undeclared identifier '_someStr'
- (void)loadView {
[super loadView];
self.someStr = @"some string...";
foo();
}
@end
正確的做法是將 Objective-C 的物件傳遞給 C 程式碼,這樣在 C 中便有了一個物件的引用,資料就可以正常獲取了。 MyViewController.h @interface MyViewController : UIViewController
@property NSString *someStr;
- (void)myObjcMethod;
@end
MyViewController.m void foo(MyViewController* obj) {
printf("%s\n", [obj.someStr UTF8String]);
[obj myObjcMethod];
}
@implementation MyViewController
- (void)loadView {
[super loadView];
self.someStr = @"some string...";
foo(self);
}
- (void)myObjcMethod {
NSLog(@"msg from my objc method");
}
@end
相關資源 |
The text was updated successfully, but these errors were encountered: |
Objective-C 中不帶加減號的方法
相關文章
- LeetCode_0224. 基本計算器,帶括號和空格的加減法算式LeetCode
- MongoDB 中的【加減乘除】運算MongoDB
- 超大整數的加減乘除計算方法
- JS加減乘除位移方法封裝JS封裝
- 多行文字加省略號的處理方法
- js拼接帶冒號:的字串的方法JS字串
- JavaScript中任意兩個數加減的解決方案JavaScript
- win 10自帶軟體感嘆號打不開如何解決_win10自帶應用感嘆號打不開修復方法Win10
- DevExpress隱藏列表中顯示的加號+devExpress
- Objective-C中的CopyObject
- 如果基不為10,則此字串不能包含減號字串
- 高精度加減乘
- golang 時間加減Golang
- php中函式前加&符號的作用分解PHP函式符號
- 簡單的加減乘除(遞迴)遞迴
- mysql查詢中時間、日期加減計算MySql
- 前端工程不瞭解?帶你踩坑加爬坑。前端
- 通過Runtime原始碼瞭解Objective-C中的方法儲存原始碼Object
- JS 程式碼中到底加不加分號JS
- 【oracle】日期加減計算Oracle
- 浮點數加減法
- shell加減乘除運算
- win10新加的硬碟為什麼不顯示 win10新加的硬碟不顯示恢復方法Win10硬碟
- excel日期加減計算方法 excel計算日期時間差Excel
- JavaScript加減乘數運算JavaScript
- 79 不用加減乘除做加法
- Trick:處理加減等差數列的技巧
- JS 加減乘除 尤其是減法精度問題JS
- 談談Objective-C中的協議Object協議
- Objective-C中的self和super理解Object
- Objective-C中的訊息轉發Object
- 一個不讓用加號的需求而引發的Java位運算詳解Java
- JS 中函式名後面加與不加括號的區別JS函式
- WPF 不帶 TargetPlatformVersion 顯示 Win10 的 Toast 通知的方法PlatformWin10AST
- Steam好評率83%,如何在DBG玩法中做加減法
- CSS文字加省略號CSS
- 數字加逗號
- java的多項式的加減乘除和賦值Java賦值