i不能从带有字符串值的数组中保存所选项目。知道怎么了?
它是我的比较代码:
if(self.detailItem){
[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[self.detailItem description] ofType:@"html"]isDirectory:NO]]];
NSString *value = (NSString *)self.detailItem;
NSString *value1 = (NSString *)@"DecideVectorVPiramidi";
value=[NSString stringWithFormat:@"%@", value];
value1=[NSString stringWithFormat:@"%@", value1];
if (value == value1) {
WebView.scalesPageToFit=YES;
}
这是数组代码:
case 1:
switch (self.nomberInSection) {
case 0:
self.detailViewController.detailItem =[NSString stringWithFormat:@"%@", [DecideOfZakusPath objectAtIndex:indexPath.row]];
break;
}
break;
detailItem
的类型是id
。
对于错误,我检查了
您需要使用isEqualToString
。==
操作员将仅通过参考进行比较。
这意味着您必须做
if ( [value isEqualToString:value1] )
{
...
您的两个字符串将是两个不同内存位置的指针,==
将比较这两个内存位置,因此将其评估为NO
。isEqualToString
或isEqual
是使用字符串等式规则进行字符串比较的方法(即,如果两个字符串包含相同的字符,则将其视为均等)。
这可能有点违反直觉。在Objective-C中,运算符是不可能的。在许多其他语言中,操作员可以超载,以便可以使用相等性操作员进行内置和自定义类的值。