TableView 单元格中的 If 语句不起作用

2024-03-26

我正在从 plist 中调用数据(复制到文档),该数据的值为 0 或 1,具体取决于我是否想要选择复选框。 cell.m 文件中的代码如下,但我似乎无法让它改变是否选择复选框。

主视图代码:

#import "ffguideViewController.h"
#import "booksCell.h"


@interface ffguideViewController ()

@end

@implementation ffguideViewController

{
    NSArray *title;
    NSArray *thumbnails;
    NSArray *price;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Find out the path of books_star.plist

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory =  [paths objectAtIndex:0];
    NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"books_star.plist"];

    // Load the file content and read the data into arrays
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
    title = [dict objectForKey:@"title"];
    thumbnails = [dict objectForKey:@"thumbnail"];
    price = [dict objectForKey:@"price"];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [title count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *books_starTableIdentifier = @"booksCell";

    booksCell *cell = (booksCell *)[tableView dequeueReusableCellWithIdentifier:books_starTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"booksCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

    cell.titleLabel.text = [title objectAtIndex:indexPath.row];
    cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]];
    cell.priceLabel.text = [price objectAtIndex:indexPath.row];

    return cell;
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 104;
}

@end

细胞代码:

#import "booksCell.h"

@implementation booksCell

@synthesize titleLabel = _titleLabel;
@synthesize priceLabel = _priceLabel;
@synthesize thumbnailImageView = _thumbnailImageView;


- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {}
return self;}


- (void) awakeFromNib {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory =  [paths objectAtIndex:0];
    NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"books_star.plist"];

    // Load the file content and read the data into arrays
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

    NSString *checked = [dict objectForKey:@"check"];

    NSLog(@"%@", [[dict objectForKey:@"check"] class]);

    NSLog(@"Checked %@", checked);

    int checkedINT = [checked intValue];

     NSLog(@"CheckedInt %d", checkedINT);

    if (checkedINT == 1){
        checkedImage.image = [UIImage imageNamed:@"check_on.png"];
    } else {
        checkedImage.image = [UIImage imageNamed:@"check_off.png"];}}


- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}


@end

plist:

    <key>title</key>
    <array>
        <string>Book 1</string>
        <string>Book 2</string>
        <string>Book 3</string>
        <string>Book 4</string>
        <string>Book 5</string>
        <string>Book 6</string>
    </array>
    <key>thumbnail</key>
    <array>
        <string>test.jpg</string>
        <string>test.jpg</string>
        <string>test.jpg</string>
        <string>testjpg</string>
        <string>test.jpg</string>
        <string>test.jpg</string>
        <string>test.jpg</string>
    </array>
    <key>price</key>
    <array>
        <string>£1.00</string>
        <string>£2.00</string>
        <string>£3.00</string>
        <string>£4.00</string>
        <string>£5.00</string>
        <string>£6.00</string>
        <string>£7.00</string>
    </array>
    <key>check</key>
    <array>
        <string>1</string>
        <string>0</string>
        <string>0</string>
        <string>1</string>
        <string>0</string>
        <string>1</string>
        <string>0</string>
    </array>
</dict>
</plist>

Move

 return self;

到函数结束而不是在代码运行之前。

将来甚至可以使用断点来查看代码是否执行。

关于我们讨论中提出的问题的第二部分:

您正在从 XIB (loadNibNamed) 创建 UITableViewCell。在这种情况下,不使用 initWithStyle: 。相反,在以下位置实现您的自定义逻辑:

- (void) awakeFromNib
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TableView 单元格中的 If 语句不起作用 的相关文章

  • 电话号码的 Swift 2 国家/地区代码

    我正在尝试从 iPhone 用户处获取国家 地区代码 我不确定是否有有关该国家 地区以及某些应用程序 如 Viber 如何建议拨号代码的信息 我到目前为止 let currentLocale NSLocale currentLocale l
  • 自调整大小的集合视图在 iOS 15 中进入递归循环

    我有一个自动调整大小的集合视图 当我调用 super layoutSubviews 时 我的应用程序崩溃 因为集合视图进入递归更新循环 这在 iOS 14 及更低版本中运行良好 但从 iOS 15 开始就观察到了这一点 class Dyna
  • 从 Xcode iOS 项目运行 swift 脚本作为构建阶段

    这是一个简单的快速脚本 usr bin env xcrun swift import Foundation let task NSTask task launchPath bin echo task arguments farg1 arg2
  • 当设备方向改变时以编程方式更新约束的正确方法?

    我在用着storyboard and autolayout 并将 IB 中的约束设置为IBOutlet在相应的视图控制器中 我正在阅读几篇关于如何将纵向和横向的约束更新为不同的帖子 但我仍然不确定应该如何执行此操作 我应该设置新的限制吗 v
  • 如何在 iOS 中通过 wifi 传输大文件

    我下载了WiTap http developer apple com library ios samplecode WiTap Introduction Intro html代码来自苹果网站 它用于通过本地 WiFi 网络传输数据 我正在从
  • 应用程序终止时处理通知(iOS)

    我正在开发接收通知的应用程序 使用苹果推送通知 我正在存储这些通知并在一个控制器中显示为列表 据我了解 每当收到通知时都会调用 didReceiveRemoteNotification 当应用程序位于前台和后台时 我可以通过 didRece
  • 从另一个选项卡重新加载 UITableView

    我在尝试重新加载时遇到问题UITableView从 XML 源加载的单元格数据 这是场景 应用程序包含选项卡 其中一个选项卡中有一个表格视图 它从 XML 文件获取数据并且工作正常 但问题是当我想要更改提要类别并从另一个选项卡更改 XML
  • 点击后退按钮时,iCarousel 会显示在上一页

    当我按下后退按钮时 这iCarousel仍然显示 1 秒 为什么会发生这种情况以及如何阻止这种情况 我已经使用故事板创建了 iCarosel 视图 void viewDidUnload super viewDidUnload self ca
  • 工作表关闭后 SwiftUI 导航栏项目框架未对齐

    在 SwiftUI 中关闭工作表后 导航栏按钮不可点击 以下是重现该问题的步骤 出示一张单子 将应用程序移至后台一小段时间 2 秒 恢复应用程序并向下滑动关闭工作表 现在导航栏按钮框架未对齐 点击的工作框架与按钮的可见框架不同 这在 iOS
  • iOS 中输入字段显示不同大小

    我有一个带有背景和固定宽度 高度的输入字段 它在我桌面上的所有浏览器中看起来都很好 但由于某种原因 它看起来更大iPad and iPhone 我在 CSS 中尝试了一些技巧 但到目前为止没有任何效果 width 120px importa
  • CALayerframe.size不等于bounds.size

    我在CALayer上遇到了一些奇怪的事情 最后发现CALayer的frame size不等于它的bounds size 这是我无法理解的 我知道frame是在super的坐标系中 bounds是它自己的坐标 并且通常的情况是frame or
  • 在实现文件中声明接口(Objective-C)

    在上一个版本的 xCode 4 3 中 我看到了预定义模板 例如我们的 Master Detail 模板 其中接口声明是在 m 文件中进行的 例如 在文件 MyFile h 中有 interface MyFile property nona
  • 从核心数据存储创建 .sqlite 文件?

    我在书籍和提供 sqlite 文件下载的网站上看到过教程 sqlite 文件用于核心数据 如何获取 sqlite 文件FROM应用程序或核心数据存储TO我的桌面 如果您要创建一个预填充的 sqlite 文件以与 Core Data 一起使用
  • 在选择器视图中为行实现的标题没有改变字体?

    我尝试更改选择器视图中标题的字体 但由于某种原因我不能 我可以更改标题的颜色 但字体保持不变 func pickerView pickerView UIPickerView attributedTitleForRow row Int for
  • 使用 Xcode 6 和(可能)cocoapods 生成错误

    在构建使用 cocoapods 和最新 Xcode 6 GM 版本的 iOS 项目时 我收到以下静态分析器错误 error error reading pic error no analyzer checkers are associate
  • PreferredInterfaceOrientationForPresentation 必须返回受支持的界面方向 (iOS 6)

    我的应用程序窗口的根视图控制器是 UINavigationController 的子类 我已将此代码添加到类中 BOOL shouldAutorotate return self topViewController shouldAutoro
  • Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

    如何在 Xcode 4 中实现获取的属性 Here is an example of two entities a book and a page 我按照此处的指南创建了一个获取的属性 该属性使用变量 FETCH SOURCE 引用来自源实
  • Swift 中的 AURenderCallback

    我正在创建一个使用音频单元的应用程序 虽然 Objective C 中有很多代码示例 包括 Apple 自己的 aurioTouch 等 但我正在尝试用 Swift 编写整个代码 我已经能够设置我的 AUGraph 并通过它运行一些音频 但
  • Xcode 找不到我的静态库!

    这是链接器错误 i686 apple darwin10 gcc 4 2 1 Users william Documents SettingsLibrary build Debug iphonesimulator libSettingsLib
  • iOS Swift 中断键盘事件

    我在拦截键盘事件时遇到问题 我已将我的 iOS 与 SteelSeries Free 游戏手柄控制器 连接 当连接到 iOS 时 它将被检测为蓝牙键盘 这是在我打开Notes时测试的 按下游戏手柄上的任何按钮都会写一个字母 我需要拦截此按钮

随机推荐

  • LibGDX 。绘制多行文本

    我正在尝试使用 libGDX 中的 BitmapFont 编写大文本 但它显示在一行上 用户只能看到文本的第一部分 如何使 bitmapFont 自动换行并在屏幕上显示整个文本 要么使用 n用于手动换行并通过渲染字体font drawMul
  • Node 和 Express:如何实现基本的 webhook 服务器

    我很难找到教程 我是 webhooks 的新手 除了对它们应该如何工作的一些基本描述之外 还没有使用或见过它们 我们的用例是在有新记录时更新 API 的用户 由于我们使用 Kafka 并已确定 最终一致性 因此另一个用途可能是在无法从 Ka
  • ListView 行标记 ala GMail

    我有兴趣创建一个 ListView 其中每一行都按照 GMail 3 0 中的方式进行标记 这会很好地分离左右 ListFragment 其他示例还包括 2 3 4 上的 Google 日历 例如颜色标记位于 ListView 的左侧 请参
  • 如何在带有 Boost Spirit 的 AST 中使用只有一个属性的类?

    我想使用 Boost Spirit 将文件解析为 AST 我的 AST 的根源是一个只有一个属性的类 typedef boost variant
  • 根据搜索条件查找列名和行名

    我有以下 Excel 电子表格 A B C D E F G 1 Q1 Q2 Q3 Q4 Search criteria 60 2 Asset 1 15 85 90 70 Column name Q4 3 Asset 2 40 80 45 6
  • Laravel getQueryString() 不带 &

    我正在尝试将包含部分 URL 的变量输出到我的页面上的 Javascript 中 当我这样做时 它会改变任何 into amp 这会破坏 URL 我尝试过使用str replace html entity decode htmlspecia
  • 如何使 C# Powershell Invoke 成员线程安全

    我有这项服务 当收到请求时 运行 powershell 命令并返回结果 这是调用者类代码 public class PowerShellScript public PowerShellScript public Object Invoke
  • 如何在面向 python 2.5.1 的项目目录中包含和使用 .eggs/pkg_resources

    我有 python egg 文件 它们存储在某些 py 代码的相对位置 问题是 我的目标是 python 2 5 1 计算机 这要求我的项目自包含在一个文件夹中 数十万台运行 Sugar 的 OLPC XO 8 2 1 版本笔记本电脑 这意
  • 将 Java Web 应用程序与 SAML SSO 集成

    我有一个 Restful Java Web 应用程序 将部署到许多不同的环境 在我的控制范围之外 这些环境将使用 SAML 2 0 SSO 解决方案 我的应用程序 我认为是 服务提供商 需要存储用户生成的状态 并使用内部业务逻辑来确定允许哪
  • 管理MapView的缓存

    我制作了一个基于 Google Maps API 的应用程序 问题是我的应用程序是为了在野外 没有网络的地方使用而设计的 因此 我想管理缓存 以确保在旅途中保存特定的图块并可用 我想在数据库中重定向它们 但任何方法都可以 目前 除了尝试重新
  • Facebook Javascript SDK:getLoginStatus 没有响应

    按照指示这一页 https developers facebook com docs javascript quickstart v2 5 我将 SDK 片段包含到我的页面中 但由于我没有任何 Facebook 应用程序 并且我只是尝试在我
  • Jest 和 Webpack - 意外的令牌导入

    我很难设置我的测试套件 我有一个 React Redux Webpack 项目 正在尝试添加 Jest 我可以运行测试 但是我无法import任何东西到我的测试文件中 例如 当尝试导入我的 redux 操作时 我收到以下错误 Users n
  • 如何在 Android 中处理来电后从之前的状态恢复 Activity?

    我正在创建从服务器下载 4 5 张图像并显示为图库的应用程序 在正常情况下工作正常 但是当有来电或设备处于睡眠模式时 我的活动从 onResume 之后开始加载数据 我无法从以前的活动状态加载数据 恢复活动 有什么解决办法吗 Thanks
  • 从文本块中提取电子邮件地址

    如何创建包含在文本块中的电子邮件地址数组 我试过了 addrs text scan map e e 1 1 但 毫不奇怪 它不能可靠地工作 对于一个 稍微 更好的正则表达式怎么样 b A Z0 9 A Z0 9 A Z 2 4 b 你可以在
  • 将 Python PuDB 调试器与 pytest 结合使用

    在我选择的测试库之前unittest 它与我最喜欢的调试器 PuDB 一起工作 不是PDB 使用 PuDB 与unittest 我粘贴import pudb pudb set trace 代码行之间 然后我执行了python m unitt
  • 使用直接显示从 DVD 抓取图像

    有人知道使用 DirectShow 和 C 从 DVD 抓取图像的方法吗 使用 DVD 渲染器时不支持样本采集器 并且如果我使用 GetCurrentImage VMR9 无窗口控件的一部分 它似乎不起作用 查看 directshow 示例
  • ASP.NET MVC 中 ViewModel 验证的最佳实践

    我在用DataAnnotations验证我的ViewModel在客户端jquery validate unobtrusive并在服务器端ASP NET MVC应用 不久前 我发现我可以这样编写验证 Required ErrorMessage
  • Apache Nutch 2.1 不同批次 ID(空)

    我使用 Apache Nutch 2 1 爬行了几个网站 爬行时 我在很多页面上看到以下消息 前任 跳绳http www domainname com news subcategory 111111 index html http www
  • 为什么我收到 Maven 错误:“无法确定资源 X 是否存在于 http://maven.glassfish.org/content/groups/glassfish”?

    每当我们执行我们的site在 Maven 中 我们会在控制台日志中看到一长串与依赖相关的错误 这些错误似乎是在构建的依赖关系报告创建部分期间生成的 所有错误似乎都是在根据资源检查资源时生成的http maven glassfish org
  • TableView 单元格中的 If 语句不起作用

    我正在从 plist 中调用数据 复制到文档 该数据的值为 0 或 1 具体取决于我是否想要选择复选框 cell m 文件中的代码如下 但我似乎无法让它改变是否选择复选框 主视图代码 import ffguideViewController