nsnotification
通知中心傳值,可以跨越多個頁面傳值, 一般也是從後面的頁面傳給前面的頁面。
思路:第三個介面的值傳給第乙個介面。
1. 在第乙個介面建立乙個通知中心, 通過通知中心,註冊乙個監聽事件
2. 在第乙個介面中,設定接收到通知的事件。
3. 在第乙個介面中的dealloc中, 將通知中心remove掉
4. 在第三個介面中, 建立乙個通知中心, 通過通知中心, 傳送通知(傳送通知的過程就是傳值的過程,將要傳輸的值作為object的值傳給第乙個介面
**片段:
第一介面:
//通知中心是個單例
nsnotificationcenter
*noticenter = [
nsnotificationcenter
defaultcenter];
// 註冊乙個監聽事件。第三個引數的事件名, 系統用這個引數來區別不同事件。
[noticenter
addobserver
:self
selector
:@selector
(receivenotification:)
name
:@"cesuo"
object
:nil];
// @selector
(receivenotification:)方法, 即受到通知之後的事件
- (void
)receivenotification:(
nsnotification
*)noti
// 第一介面中dealloc中移除監聽的事件
- (void
)dealloc
第二介面:
// 建立乙個通知中心
nsnotificationcenter
*center = [
nsnotificationcenter
defaultcenter];
// 傳送通知. 其中的name填寫第一介面的name, 系統知道是第一介面來相應通知, object就是要傳的值。 userinfo是乙個字典, 如果要用的話,提前定義乙個字典, 可以通過這個來實現多個引數的傳值使用。
[center
postnotificationname
:@"cesuo"
object
:@"zhangheng"
userinfo
:dic];
iOS開發 通知中心傳值以及僅通知
利用通知中心傳遞資訊在乙個控制器傳給上乙個控制器的情況經常用到 不傳值時常用於觸發某種action 在傳送方 nsnotificationcenter defaultcenter postnotificationname post object self 在接收方 nsnotificationcen...
反射的另外一種方法
t instance default t type type typeof t system.reflection.constructorinfo constructorinfoarray type.getconstructors system.reflection.bindingflags.ins...
混淆id的一種方法
眾所周知,在web應用的api中,總是會出現資料庫item的id。比如get posts 1表示獲取id為1的文章內容。這樣做十分簡潔,但存在被人爬資料的風險。比如我可以大致猜測或者試一下id的範圍,1,2,3.10000這樣迭代地爬資料。如果伺服器不做訪問限制,很輕易就能把所有資料就能爬下來。而且...