作者aureolus (Aureo)
看板MacDev
標題[問題] 請問不同class互相設定讀取變數問題
時間Thu Apr 14 17:15:19 2016
寫的平台是osx非ios,假設今天有兩個class
A_class.h , A_class.m , B_class.h , B_class.m
如果A_class中有宣告一個變數int var = 0;
請問如何在B_class讀取A_class的var數值並且能改變他的數值呢?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.134.2
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1460625322.A.8D7.html
1F:推 cryinglove: 不熟osX ,但是應該跟iOS一樣,先取得該class,在修改 04/14 18:27
2F:推 darktt: 你要取得a class的instance才能改它的變 04/14 19:15
3F:→ darktt: 數 04/14 19:15
4F:→ LFimi: 這跟哪個平台其實沒關係, 很單純的程式問題 04/14 20:22
5F:→ yr: 單純 OO 概念而已 04/14 23:00
6F:→ howdiun: 方法太多了,要看使用什麼設計模式 04/15 09:27
非常謝謝各位的幫忙,已經用instance關鍵字找到方法了
我的做法是
A_class.h:
static int terayport = 0 ;
@interface A_class : NSWindowController
+(void)valueChangePlus:(int)ser;
A_class.m:
+(void)valueChangePlus:(int)ser
{
terayport = ser;
}
B_class.h:
#import "A_class.h"
B_class.m:
- (IBAction)setbut:(id)sender
{
[[A_class class] valueChangePlus:50];
}
爬文後試出這樣做能夠成功改變A_class裡面的變數值
請問這種方法會發生什麼預期外的錯誤問題嗎?謝謝!
※ 編輯: aureolus (60.248.134.2), 04/15/2016 09:56:16
※ 編輯: aureolus (60.248.134.2), 04/15/2016 09:57:08
7F:推 darktt: 你這樣做每次的變動都會影響全部的A_clas 04/15 13:42
8F:→ darktt: s 04/15 13:42
9F:→ yr: 你到底要改的是 class variable 還是 instance variable ? 04/15 13:59
我要改的是A_class裡面宣告的值...我也不太清楚是class還是instance
請問這樣變動全部的A_class會發生什麼預期外的錯誤嗎?謝謝!
※ 編輯: aureolus (114.136.75.168), 04/15/2016 16:41:30
非常感謝darktt的幫忙,公司沒有前輩可以詢問全部只能靠自學
受益良多,謝謝!
※ 編輯: aureolus (60.248.134.2), 04/18/2016 09:06:42