【问题标题】:parsing array elements in iPhone在 iPhone 中解析数组元素
【发布时间】:2011-09-14 11:25:55
【问题描述】:
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *pthpath = [bundle pathForResource:@"path" ofType:@"txt"];
    NSString *content = [NSString stringWithContentsOfFile:pthpath encoding:NSUTF8StringEncoding error:nil];
    array=[[NSArray alloc ]init];
    array = [content componentsSeparatedByString:@"~"];
=====================================================================

这里的内容是:

87,348〜51,347〜135,132〜182,133〜268,346〜236,347〜159,168〜87,347 @ 118,298〜115,297〜200,298〜189,266〜128,265〜117,299 @ 222,352〜268,353〜264,340〜219,342〜225,299 @ 186,262〜199,299〜212,297〜195,257〜188,260

数组是:

"87,348", "51,347", "135,132", "182,133", "268,346", "236,347", "159,168", "87,347@118,298", "115,297", "200,298", "189,266", "128,265", "117,299@222,352", "268,353", "264,340", "219,342", "225,355@186,262", "199,299", "212,297", "195,257", “188,260”

但我想通过@解析再次创建一个数组。请帮帮我............

【问题讨论】:

  • 隐形男/女提出的问题。
  • 请不要问重复的问题,我已经将第二个问题合并了。

标签: iphone arrays parsing coordinates


【解决方案1】:
for (NSString *string in array) {
    NSArray *subArray = [string componentsSeparatedByString:@"@"];
    for (NSString *substring in subArray)
       etc. etc.

(下次请尝试更好地格式化和表达您的问题。)

【讨论】:

    【解决方案2】:

    不要使用 componentsSeparatedByString:,而是使用 componentsSeparatedByCharactersInSet: 并使用所需的分隔符创建一个字符集。

    此外,您正在那里创建一个数组 (array = [[NSArray alloc] init]),当您执行 array = [content componentsSeparatedByString:@"@"] 时,您正在泄漏刚刚分配的数组。一般来说,您似乎应该阅读更多有关对象和引用如何工作的信息。

    【讨论】:

    • 为了从数组的泄漏中恢复,我也使用了保留,直到它完美地工作。请给我代码以再次使用 ~ 拆分得到的数组
    • 我在第一句话中就给了你所有你需要的代码。如果你不能使用我给你的东西,那么你不应该这样做。即使你保留,你也在泄漏,因为你将“数组”指向一个内存位置,初始化那个内存位置,然后将它指向其他地方,所以第一个内存位置仍然被分配,没有人使用它或释放它。
    【解决方案3】:

    如果我正确理解了您的问题,我认为从以下代码中您可能会有所了解,

    NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:1];
        NSArray *tempArray1 = nil;
        NSArray *tempArray2 = nil;
        NSString *content = @"87,348~51,347~135,132~182,133~268,346~236,347~159,168~87,347@118,298~115,297~200,298~189,266~128,265~117,299@222,352~268,353~264,340~219,342~225,355@186,262~199,299~212,297~195,257~188,260";
        tempArray1 = [content componentsSeparatedByString:@"@"];
        for(NSString *string in tempArray1)
        {
            tempArray2 = [string componentsSeparatedByString:@"~"];
            [resultArray addObjectsFromArray:tempArray2];
        }
    
        NSLog(@"ResultArray :%@", resultArray);
    

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多