Use of undeclared identifier 'XXX'; did you mean '_XXX'?
Object-C在2.0引入@property
但要注意的是,@property自動幫我們生成的getter/setter中,實際的變數名稱會被加上底線(underline),例如名為"ABC"的變數透過property宣告後,其實際可被存取的名稱是"_ABC"
.h file
@property(nonatomic) NSString *contentOfTest;
.m file
// 錯誤用法
contentOfTest = @"這是測試";
// 正確用法1 (use the property)
self.contentOfTest = @"這是測試";
// 正確用法2 (use the generated instance variable)
_contentOfTest = @"這是測試";
SQLite Error : automatic index on tablename(columnname)
文章轉載
原文說明為何5.0的Android裝置會遇到Error等級的automatic index on tablename(columnname)錯誤,以及如何解決
Enable Zombie Objects
身為初學者,一定常卡關....以前學android只是不熟悉才看不懂Java Error
現在學Objective-C發現error log根本外星文XD
爬了一下網路文才發現,原來最常遇到的錯誤都是因為某object已被釋放(找不到),卻還是被某段程式碼呼叫~~一個已經找不到的物件Xcode當然無法提供易讀資訊
解決方式為Enable Zombie Objects
在Xcode開啟「Product → Scheme → Edit Scheme」,接著如下圖勾選「Enable Zombie Objects」即可
The keyword of class and interface at header file in Objective-C
// use class
@class MyClass;
// import file
#import "MyClass.h"
以上二者可替換嗎?YES!
那為何要有@class用法出現?
因為當我們需要互相引用的時候(如下粉紅色字體),會有無法預期的問題發生,這時候直接使用@class告訴compiler我要來使用剛引入的class,是比較好的方法~不然會有不停互相import引用的詭異情況
// 在MyClass1.h檔案
#import MyClass2.h
// 在MyClass2.h檔案
#import MyClass1.h
@class MyClass;
// import file
#import "MyClass.h"
以上二者可替換嗎?YES!
那為何要有@class用法出現?
因為當我們需要互相引用的時候(如下粉紅色字體),會有無法預期的問題發生,這時候直接使用@class告訴compiler我要來使用剛引入的class,是比較好的方法~不然會有不停互相import引用的詭異情況
// 在MyClass1.h檔案
#import MyClass2.h
// 在MyClass2.h檔案
#import MyClass1.h
[轉載]5 approach to load UIView from Xib
很好的文章 算是替初學者解惑!!!
拜讀這篇文章後比較有感覺了,但還沒完全掌握,先轉載過來
Allocates a new instance
// 舊版寫法
MyClass *item = [[MyClass alloc] init];
// 新版寫法
MyClass *item = [MyClass new];
MyClass *item = [[MyClass alloc] init];
// 新版寫法
MyClass *item = [MyClass new];
Append NSString
Java和JavaScript的 + 會幫你自動依照型別判斷你要的是String Append或Numeric Operate
若是在Objective-C進行String Append,請用如下方式
NSString *message = [NSString stringWithFormat:@"%@%@\r%@%@",@"ID:", @"1", @"Name:", @"Karen"];
輸出結果會是這樣
ID:1
Name:Karen
在Name換行是因為加了\r
2015/7/2補充
如果要在字串中加入空白,可參考這篇 NSString stringByPaddingToLength example ios
若是在Objective-C進行String Append,請用如下方式
NSString *message = [NSString stringWithFormat:@"%@%@\r%@%@",@"ID:", @"1", @"Name:", @"Karen"];
輸出結果會是這樣
ID:1
Name:Karen
在Name換行是因為加了\r
2015/7/2補充
如果要在字串中加入空白,可參考這篇 NSString stringByPaddingToLength example ios
Convert an HTMLCollection to an Array
HTMLCollection is NOT an array !
The HTMLCollection interface represents a generic collection (array-like object) of elements (in document order).
So... If u want to use the method of Array like slice(), u need to convert HTMLCollection in advance.
Solution
var convertedArray = Array.prototype.slice.call(YourHtmlCollection)
var convertedArray = [].slice.call(YourHtmlCollection);
var convertedArray = slice.call(YourHtmlCollection);
The HTMLCollection interface represents a generic collection (array-like object) of elements (in document order).
So... If u want to use the method of Array like slice(), u need to convert HTMLCollection in advance.
Solution
var convertedArray = Array.prototype.slice.call(YourHtmlCollection)
var convertedArray = [].slice.call(YourHtmlCollection);
var convertedArray = slice.call(YourHtmlCollection);
Iterate HashMap to get key and value
單取key或value就不說了~直接for each
若要同時取key & value可以這樣寫
HashMap< String, MyData> myHashMap;
for (Map.Entry< String, MyData> entry : map.entrySet()) {
String key = entry.getKey();
MyData value = entry.getValue();
}
訂閱:
文章 (Atom)