【问题标题】:Objective-C - Table View Controller - Expected expressionObjective-C - 表视图控制器 - 预期表达式
【发布时间】:2015-05-05 14:05:58
【问题描述】:

我是 Objective-C 和 iOS 方面的初学者,我尝试学习如何为 iOS 开发出色的应用程序。

我尝试创建一个 TableViewController,所以我创建了一个类,但是这段代码有一些问题,我不知道为什么。我在 cmets 的代码中描述了所有内容。

这是代码。

BooksTableViewController.m 

import "BooksTableViewController.h"

@implementation BooksTableViewController



- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil //Semantic Issue - Designated initializer missing a 'super' call to a designated initializer of the super class
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];// Parse Issue - Expected expression

if(self){
    self.title = @"Books";
    self.tabBarItem.image = [UIImage imageNamed:@"books8.png"];
    self.imiona = @[@"Pan Tadeusz", @"Potop", @"Lalka", @"Uczta dla wron", @"Symfonnia C++"];
}
return self;
}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.imiona.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Title"];

if(cell == nil){
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Title"];
}

cell.textLabel.text = self.imiona[indexPath.row];

return cell; 
}

@end

感谢您的帮助!

【问题讨论】:

  • 将此行 self = [super initWithNibName:<#nibNameOrNil#> bundle:nibBundleOrNil]; 更改为 self = [super initWithNibName: nibNameOrNil bundle:nibBundleOrNil];
  • Alos 尝试在 'viewDidLoad' 函数上编写此代码 self.title = @"Books"; self.tabBarItem.image = [UIImage imageNamed:@"books8.png"]; self.imiona = @[@"Pan Tadeusz", @"Potop", @"Lalka", @"Uczta dla wron", @"Symfonnia C++"];
  • 错误消失了,但现在这里有一个“线程 1:断点 1.1”,应用程序无法运行。有什么问题?
  • 你添加了断点吗?请删除断点并再次运行。如果我错了,请分享错误的屏幕截图
  • 我打开了两个 symulator,所以这就是brakeponint 的问题。非常感谢您的帮助:)

标签: ios objective-c


【解决方案1】:

initWithNibNamenimNameOrNil 中存在问题。你所要做的就是:改变这一行

self = [super initWithNibName:<#nibNameOrNil#> bundle:nibBundleOrNil]; 

self = [super initWithNibName: nibNameOrNil bundle:nibBundleOrNil];

注意:&lt;#nibNameOrNil#&gt;nibNameOrNil

【讨论】:

  • 我有self = [super initWithNibName: nibNameOrNil bundle:nibBundleOrNil]; 这个带有&lt;#nibNameOrNil#&gt; 的版本是在从xcode 复制之后,在这个地方而不是这个错误,我有一个断点,并且应用程序可以构建但无法加载,它会停止一开始。这里有什么问题?我没听懂
【解决方案2】:

来自代码感知自动填充。您会注意到 Xcode 中的文本是灰色的。你需要在它上面输入 nibNameOrNil 。看起来像 Xcode 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    相关资源
    最近更新 更多