我正在尝试在我的MAX_WRONG = len(HANGMAN) - 1
# creating list of random words
WORDS = ("TECHNOLOGY", "PYTHON", "SCRIPT", "PROCESSOR", "RANDOM", "COMPUTING")
# initialize variables
word = random.choice(WORDS)
so_far = "-" * len(word) # one dash for every letter in the word to be guessed
wrong = 0 # number of wrong guesses made
used = [] # letters already guessed
# creating the main loop
print("Welcome to Hangman. Good luck!")
while wrong < MAX_WRONG and so_far != word:
print(HANGMAN[wrong])
print("\nYou've used the following letters:\n", used)
print("\nSo far, the word is:\n", so_far)
# getting the player's guess
guess = input("\n\nEnter your guess: ")
guess = guess.upper()
while guess in used:
print("You've already guessed the letter", guess)
guess = input("\nEnter your guess: ")
guess = guess.upper()
used.append(guess)
# checking the guess
if guess in word:
print("\nYes!", guess, "is in the word!")
# create a new so_far to include guess
new = ""
for i in range(len(word)):
if guess == word[i]:
new += guess
else:
new += so_far[i]
so_far = new
else:
print("\nSorry,", guess, "isn't in the word.")
wrong += 1
# ending the game
if wrong == MAX_WRONG:
print(HANGMAN[wrong])
print("\nYou lose!")
else:
print("\nYou guessed it!")
print("The word was:", word)
ext()
内填充3个不同的TableViews
(根据所选的ViewController
显示不同的广告资料) - UISegmentControl
,sidetableView
和neighboursView
。前两个填充完美,但第三个(friendsView
)似乎没有加载单元格。见下面的代码。知道为什么?我觉得我在neighboursView
错误中定义了第三个笔尖?
ViewController.h
viewdidLoad
ViewController.m
- (IBAction)segmentControl:(id)sender;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentControl;
@property (weak, nonatomic) IBOutlet UITableView *sidetableView;
@property (strong, nonatomic) NSMutableArray *myFriendData;
@property (weak, nonatomic) IBOutlet UITableView *neighboursView;
@property (strong, nonatomic) NSMutableArray *friendData;
@property (strong, retain) NSMutableArray *neighbourData;
@property (strong, nonatomic) IBOutlet UITableView *friendsView;
答案 0 :(得分:1)
当然,您的第三张表格无法加载单元格...您在第三个IF语句中错过return cell;
...
答案 1 :(得分:0)
答案 2 :(得分:0)
回答编辑代码
<强> ViewController.h 强>
- (IBAction)segmentControl:(id)sender;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentControl;
@property (weak, nonatomic) IBOutlet UITableView *sidetableView;
@property (strong, nonatomic) NSMutableArray *myFriendData;
@property (weak, nonatomic) IBOutlet UITableView *neighboursView;
@property (strong, nonatomic) NSMutableArray *friendData;
@property (strong, retain) NSMutableArray *neighbourData;
我更喜欢使用weak
引用而不是strong
@property (weak, nonatomic) IBOutlet UITableView *friendsView;
<强> ViewController.m 强>
我想你可能会错过在numberOfRowsInSection
中返回数组的计数。我注意到你在cell
tableView中cellForRowAtIndexPath
还没有返回neighboursView
。
- (void)viewDidLoad {
[super viewDidLoad];
//remove un-necessary code
UINib *nib = [UINib nibWithNibName:@"sidebarCell" bundle:nil];
[self.friendsView registerNib:nib forCellReuseIdentifier: @"sidebarCell"];
[self.neighboursView registerNib:nib forCellReuseIdentifier: @"sidebarCell"];
nib = [UINib nibWithNibName:@"MyFriendTableViewCell" bundle:nil];
[self.sidetableView registerNib:nib forCellReuseIdentifier: @"MyFriendTableViewCell"];
}
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.sidetableView) {
if ([self.myFriendData count] > 0) {
return [self.myFriendData count];
} else {
return 0;
}
}
if (tableView == self.friendsView) {
if ([self.friendData count] > 0) {
return [self.friendData count];
} else {
return 0;
}
}
else {
//Are you forgetting un-commenting this??
// return [self.neighbourData count];
return [self.neighbourData count];
}
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (tableView == self.sidetableView) {
self.sidetableView.separatorStyle = UITableViewCellSeparatorStyleNone;
MyFriendTableViewCell *cell = (MyFriendTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"MyFriendTableViewCell"];
NSDictionary *friendsName = [self.myFriendData objectAtIndex:indexPath.row];
[[cell friendName] setText:[friendsName objectForKey:@"title"]];
NSDictionary *friendsBio = [self.myFriendData objectAtIndex:indexPath.row];
[[cell friendBio] setText:[friendsBio objectForKey:@"field_friendbio"][@"und"][0][@"safe_value"]];
NSString *profilePath = [[self.myFriendData objectAtIndex:indexPath.row] objectForKey:@"field_picture"][@"und"][0][@"safe_value"];
[cell.friendPic sd_setImageWithURL:[NSURL URLWithString:profilePath]];
NSLog(@"This is profilePath %@",profilePath);
return cell;
}
if (tableView == self.friendsView)
{
self.friendsView.separatorStyle = UITableViewCellSeparatorStyleNone;
sidebarCell *cell = (sidebarCell *)[tableView dequeueReusableCellWithIdentifier:@"sidebarCell"];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"sidebarCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
NSDictionary *userName = [self.friendData objectAtIndex:indexPath.row];
[[cell username] setText:[userName objectForKey:@"node_title"]];
NSDictionary *userBio = [self.friendData objectAtIndex:indexPath.row];
[[cell userDescription] setText:[userBio objectForKey:@"body"]];
NSString *profilePath = [[self.friendData objectAtIndex:indexPath.row] objectForKey:@"friendphoto"];
[cell.usermini sd_setImageWithURL:[NSURL URLWithString:profilePath]];
return cell;
} else {
sidebarCell *cell = (sidebarCell *)[tableView dequeueReusableCellWithIdentifier:@"sidebarCell"];
NSDictionary *userName = [self.neighbourData objectAtIndex:indexPath.row];
[[cell username] setText:[userName objectForKey:@"first name"]];
NSDictionary *userlast = [self.neighbourData objectAtIndex:indexPath.row];
[[cell lastName] setText:[userlast objectForKey:@"last name"]];
NSDictionary *userBio = [self.neighbourData objectAtIndex:indexPath.row];
[[cell userDescription] setText:[userBio objectForKey:@"userbio"]];
NSString *profilePath = [[self.neighbourData objectAtIndex:indexPath.row] objectForKey:@"photo_path"];
[cell.usermini sd_setImageWithURL:[NSURL URLWithString:profilePath]];
NSLog(@"This is profilePath %@",profilePath);
// are you forgetting to return cell?
return cell;
}
}
- (IBAction)segmentControl:(id)sender {
UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;
switch (selectedSegment)
{
case 0:
[self.sidetableView setHidden:NO];
[self.neighboursView setHidden:YES];
[self.friendsView setHidden:YES];
NSLog(@"Requests!");
break;
case 1: //FRIENDS MAP VIEW
[self.sidetableView setHidden:YES];
[self.friendsView setHidden:NO];
[self.neighboursView setHidden:YES];
break;
case 2:
[self.sidetableView setHidden:YES];
[self.neighboursView setHidden:NO];
[self.friendsView setHidden:YES];
break;
}
}
答案 3 :(得分:0)
您的代码未被执行,您必须
return cell;
显示它