2

我有这个if语句来检查一个 URL 是否以前缀开头:

NSString *baseUrl = @"http://example.com/";

NSString *currentURL = @"http://example.com/confirm";

if( [currentURL hasPrefix:[baseUrl stringByAppendingString:@"confirm"]] ){

    // True, so do something...

}

我想修改hasPrefix我的语句的一部分,if以便如果currentUrl附加了此处显示的任何值,则它返回 true NSArray

NSArray *pages = [NSArray arrayWithObjects:@"confirm",@"products",nil];

我怎样才能做到这一点?

4

4 回答 4

1

如果存在任何术语,只需遍历您的 pages 数组并设置一个布尔标志

//
//  customstring.m
//
//  Created by rbertsch8 on 8/2/13.
//
//

#import "customstring.h"

@implementation customstring

-(bool)hasPrefixArray:(NSArray*)array withbaseURL:(NSString*)baseUrl
{
    bool hasprefix = NO;
    for(int i = 0; i < [array count] || hasprefix == NO; i++)
    {
        hasprefix = [self hasPrefix:[baseUrl stringByAppendingString:[array objectAtIndex:i]]];
    }

    return hasprefix;
}

@end

现在在您的代码中执行以下操作: //导入您的自定义字符串文件 #import NSStringPrefix.h

NSStringPrefix *customURL = yoururl.com
NSString *baseUrl = baseurl.com
NSArray *yourarray = [[NSArray alloc] initWithObjects: @"one", @"two"]

if([customURL hasPrefixArray:yourarray withbaseURL:baseUrl])
{
    //dowork
}

更新

在全局类中定义变量。

#define companyOrSiteName @"Company X"
#define baseUrl @"http://www.example.com/" // Set base URL for site.
#define customUrlScheme @"example://" // Set custom URL Scheme for app.
#define openInModal [NSArray arrayWithObjects: @"contact-us.php",@"products/",nil]
#define openInSafari [NSArray arrayWithObjects: @"about",@"products/resources/download",nil]
#define twitterHandle @"Example" // Twitter username without the "@" symbol
#define kTrackingId @"UA-4564564-3" // Set Google Analytics iOS App Tracking code.
于 2013-08-02T14:43:15.853 回答
0

对于那些想要避免腕管综合症的人:

NSString *baseUrl = @"http://example.com/";
NSString *currentURL = @"http://example.com/confirm";
NSArray *pages = [NSArray arrayWithObjects:@"confirm",@"products",nil];
BOOL hasSuffix = NO;
[pages enumerateObjectsUsingBlock:^(NSString* page, NSUInteger idx, BOOL *stop) {
  if([currentURL hasPrefix: baseUrl] && [currentURL hasSuffix: page]){
    hasSuffix = YES;
    stop = YES;
  }
}];

你的描述听起来更像是在寻找一个后缀,所以你有它。

于 2014-06-04T18:45:13.143 回答
0
NSArray *parts = [currentUrl componentsSeparatedByString:@"/"];
NSString *name = [parts objectAtIndex:1];

在此之后,您可以检查字符串名称是否是 pages 数组中的元素。

于 2013-08-02T14:49:19.890 回答
0

很简单,使用下面的代码

BOOL hasPrefixInArray = NO;

for(int i = 0; i < [array count] && hasPrefixInArray == NO; i++)
{
    hasPrefixInArray = [yourString hasPrefix:array[i]];
}

// check value here for hasPrefixInArray
NSLog(@"%d",hasPrefixInArray);
于 2019-01-03T20:26:29.887 回答