1、autorelease的應用場景
經常用來在類方法中快速建立1個物件。
//宣告實現乙個類方法
+ (student *)student
應用://
在自動釋放池中使用類方法建立物件
@autoreleasepool
錯誤寫法:
intmain()
//寫在自動釋放池外部將無法釋放物件。
student *s =[student student];
reutrn 0;
}2、完善快速建立物件的方法
問題1:如果定1個goodstudent,繼承自student,此時,還能使用類方法快速建立物件嗎?
解決方案:
在類方法中使用id
+ (id
)student
此時,返回的物件仍舊是student.所以,應該用self,替代student.
問題2:用其他物件型別,接受自定義物件型別。
如: nsstring *s =[student student];
nslog(
@"%lu
",s.length);
這段**,編譯時,不會報任何警告,但是執行時會直接崩潰。
改進辦法:
//instancetype:可以動態判斷返回的型別和接受的型別是否一致
+(instancetype)student
此時,編譯器會警告
nsstring *s =[student student];
nslog(
@"%lu
",s.length);
【理解】應用:建立1個學生類初始化年齡思考&實現1:
建立乙個學生類student,通過重寫構造方法實現建立學生物件的時候,預設的年齡值指定的年齡。
//宣告檔案
#import
@inte***ce
student : nsobject
//年齡屬性
@property(nonatomic,assign) int
age;
//自定義構造方法
-(instancetype)initwithage:(int
)age;
//自定義類方法
+(instancetype)studentwithage:(int
)age;
@end
//實現檔案
#import
"student.h
"@implementation
student
- (void
)dealloc
//自定義構造方法
-(instancetype)initwithage:(int
)age
return
self;}//
自定義初始化方法
+(instancetype)studentwithage:(int
)age
@end
//主函式
#import
#import
"student.h
"int main(int argc, const
char *argv)
return
0; }
C語言 0 和0和 0
共同點 都是字元 不同點 0 對應的ascii碼是0,是ascii碼表中的第乙個字元,即空字元 判斷乙個字串是否結束的標誌就是看是否遇到 0 0 對應的ascii碼是48,48對應的十六進製制數就是0x30。0 是字串常量,字串常量是由一對雙引號括起的字串行。字串常量可以含乙個或多個字元。0 是字元...
C 筆記 3 6 多維陣列
嚴格來說,c 語言中沒有多維陣列,通常所說的多維陣列其實是陣列的陣列。二維陣列作為函式引數,不能省略二維大小二維陣列作為函式引數,實參可以直接使用二維陣列名,在被呼叫函式中對形引數組定義可以指定所有維數的大小,也可以省略第一維的大 明,如 void func int a 3 4 void func ...
PHP PSR 0 自動載入規範
此規範已被棄用 本規範已於2014年10月21日被標記為棄用,目前最新的替代規範為 psr 4 本文是為自動載入器 autoloader 實現通用自動載入,所需要遵循的編碼規範。以上是使用通用自動載入必須遵循的最低規範標準,可通過以下的示例函式 splclassloader 載入 php 5.3 的...