我希望能寫的東西,如:爲什麼NSString不支持objectAtIndexedSubscript以及如何解決?
NSString *foo = ...;
unichar c = foo[i];
,但奇怪的是,NSString
通過objectAtIndexedSubscript
不支持數組索引。爲什麼不呢?
要解決此問題,實施類別(例如NSString+Indexing
)以擴展NSString
是否合理?
我希望能寫的東西,如:爲什麼NSString不支持objectAtIndexedSubscript以及如何解決?
NSString *foo = ...;
unichar c = foo[i];
,但奇怪的是,NSString
通過objectAtIndexedSubscript
不支持數組索引。爲什麼不呢?
要解決此問題,實施類別(例如NSString+Indexing
)以擴展NSString
是否合理?
上的NSString添加一個類別與方法:
-(id)objectAtIndexedSubscript:(NSUInteger)idx
{
if(idx >= self.length)
{
return nil;
}
return @([self characterAtIndex:idx]);
}
,並調用它像這樣:
unichar c = [foo[i] unsignedShortValue]
注意是c爲0時,雙方字符是空字符,或索引超出界限。
但是,這是一個明智的解決方案? (OP的問題) –
這不是OP所要求的 – Can
Ohhhhhhhhh ... Duh ...傻了,爲什麼我沒有意識到這一點?......「unichar」不是一個Objective-C對象;因此,'objectAtIndexedSubscript'對'NSString'沒有意義。這就是爲什麼它不支持它,而不能。 –
但unichar不是一個對象。 – cahn
你看過NSString類的參考嗎?你對'unichar c = [string characterAtIndex]'說什麼? –