ios - 如何在 Xcode 中获取表格主题的详细信息?

标签 ios objective-c xcode

我做了一个简单的联系人应用程序,它可以帮助用户使用电子邮件和电话号码创建联系人。现在我尝试从表中添加大约 100 个联系人。因此,我需要能够读取每列的标题,并从文本文件中获取相应的数据,并将其提供给 xcode 中的函数。这些是我的文件 contacts.txt 中联系人表的标题:

Emp_ID   Name   Email   Contact_Number

实现这一目标有哪些不同的方法?

我有一个表,其中的这些标题保存在文本文件 contacts.txt 中。不,数据库和 SQL。

这是我的 Contacts.txt 文件在 xcode 中的示例

\itap1\trowd \taflags1 \trgaph108\trleft-108 \trcbpat3 \tamart320 \tamarb320 \trmarr320 \trbrdrt\brdrs\brdrw20\brdrcf2 \trbrdrl\brdrs\brdrw20\brdrcf2 \trbrdrr\brdrs\brdrw20\brdrcf2 
\clvertalc \clshdrawnil \clwWidth360\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx1728
\clvertalc \clshdrawnil \clwWidth1580\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx3456
\clvertalc \clshdrawnil \clwWidth3180\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx5184
\clvertalc \clshdrawnil \clwWidth6020\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx6912
\clvertalc \clshdrawnil \clwWidth3200\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx8640
\pard\intbl\itap1\pardeftab720\sl480

\f0\b\fs32 \cf0 #
\b0 \cell 
\pard\intbl\itap1\pardeftab720\sl480

\b \cf0 Emp_ID
\b0 \cell 
\pard\intbl\itap1\pardeftab720\sl480

\b \cf0 Name
\b0 \cell 
\pard\intbl\itap1\pardeftab720\sl480

\b \cf0 Email
\b0 \cell 
\pard\intbl\itap1\pardeftab720\sl480

\b \cf0 Contact_Number
\b0 \cell \row

\itap1\trowd \taflags1 \trgaph108\trleft-108 \trcbpat3 \tamart320 \tamarb320 \trmarr320 \trbrdrl\brdrs\brdrw20\brdrcf2 \trbrdrr\brdrs\brdrw20\brdrcf2 
\clvertalc \clshdrawnil \clwWidth360\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx1728
\clvertalc \clshdrawnil \clwWidth1580\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx3456
\clvertalc \clshdrawnil \clwWidth3180\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx5184
\clvertalc \clshdrawnil \clwWidth6020\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx6912
\clvertalc \clshdrawnil \clwWidth3200\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx8640
\pard\intbl\itap1\pardeftab720\sl480
\cf0 1\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Emp1000\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Name1\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 name1@gmail.com\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 9874563210\cell \row

\itap1\trowd \taflags1 \trgaph108\trleft-108 \trcbpat3 \tamart320 \tamarb320 \trmarr320 \trbrdrl\brdrs\brdrw20\brdrcf2 \trbrdrr\brdrs\brdrw20\brdrcf2 
\clvertalc \clshdrawnil \clwWidth360\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx1728
\clvertalc \clshdrawnil \clwWidth1580\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx3456
\clvertalc \clshdrawnil \clwWidth3180\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx5184
\clvertalc \clshdrawnil \clwWidth6020\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx6912
\clvertalc \clshdrawnil \clwWidth3200\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx8640
\pard\intbl\itap1\pardeftab720\sl480
\cf0 2\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Emp1010\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Name2\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 name2@gmail.com\cell 
\pard\intbl\itap1\pardeftab720\sl480
\cf0 9875463210\cell \row

依此类推,列表继续为名称 3 - 100

预期输出

数组={(Emp1000,Name1,name1@gmail.com,9874563210),(Emp1010,Name2,name2@gmail.com,9875463210)}

这是一段代码,通过它我可以获取任意两个字符串之间的数据

-(NSString*)inString:(NSString*)getStringBetweenString1:(NSString*)sub1 String2:(NSString*)sub2 {
     NSLog(@"%@",start);
    NSRange startRange = [orgstr rangeOfString:start];
    if (startRange.location != NSNotFound) {
        NSRange targetRange;
        targetRange.location = startRange.location + startRange.length;
        targetRange.length = [orgstr length] - targetRange.location;   
        NSRange endRange = [orgstr rangeOfString:end options:0 range:targetRange];
        if (endRange.location != NSNotFound) {
            targetRange.length = endRange.location - targetRange.location;
            return [orgstr substringWithRange:targetRange];
        }
    }
    return nil;
}

最佳答案

您可以使用 NSScanner 解析文件,提取每一列并将每条信息保存到新的联系人对象中。您可以使用 while 循环来迭代每一行,并在扫描器完成当前行的所有列时创建新对象。

参见 this doc有关使用 NSScanner 的指南。

关于ios - 如何在 Xcode 中获取表格主题的详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18141030/

相关文章:

ios - 如何从一个 UITableView 的两个数据源中提取数据

ios - 如何控制UIView动画的速度?

ios - 如何在 UITableView 中制作一个 "title"单元格?

ios - 根据我的媒体查询禁用 JS

iphone - 如何本地化数组中的所有字符串

ios - 关闭由推送通知呈现的 viewController

iphone - 建议初始化数组(或其他对象)的最佳方法

ios - 如何在我的应用程序中从 Xcode 获取环境变量

ios - 主线程 pfquerytableviewcontroller

xcode - @Published ObservedObjects SwiftUI 更新未发生