你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS ARC下循環引用的問題

iOS ARC下循環引用的問題

編輯:IOS開發綜合
strong:適用於OC對象,作用和非ARC中的retain作用相同,它修飾的成員變量為強指針類型 weak:適用於OC對象,作用和非ARC中的assign作用相同,修飾的成員變量為弱指針類型 assging:適用於非OC對象類型   在OC對象循環引用的時候一端為strong類型,另一段為weak類型   示例代碼如下: 復制代碼 復制代碼 /****************************** Teacher.h文件 ***********************************/ #import <Foundation/Foundation.h> @class Student; @interface Teacher : NSObject @property (nonatomic,strong) Student *student; @property (nonatomic,strong) NSString *teacherName; @end   /****************************** Teacher.m文件 ***********************************/ #import "Teacher.h" #import "Student.h" @implementation Teacher - (void)dealloc {     NSLog(@"叫%@的Teacher對象被銷毀了",_teacherName); } @end   /****************************** Student.h文件 ***********************************/ #import <Foundation/Foundation.h> @class Teacher; @interface Student : NSObject @property (nonatomic,weak) Teacher *teahcher; @property (nonatomic,strong) NSStirng *studentName; @end     /****************************** Student.m文件 ***********************************/ #import "Student.h" #import "Teacher.h" @implementation Student - (void)dealloc {     NSLog(@"叫%@的Student對象被銷毀了",_stuName); } @end   /****************************** main.m文件 ***********************************/ #import <Foundation/Foundation.h> #import "Teacher.h" #import "Student.h" int main(int argc, const char * argv[]) {         Teacher *teacher = [[Teacher alloc] init];     teacher.teacherName  = @"張老師";          Student *student = [[Student alloc] init];     student.stuName = @"李同學";        // Student類對象中的Teacher屬性為弱引用     student.teahcher = teacher;          // Teacher類對象中的Student屬性為強引用     teacher.student = student;       return 0; }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved