2016-01-14 2 views
0

У меня есть метод, который заполняет ячейку прототипа и два предупреждения бросаются, и я не уверен, что делать.Сравнение логического указателя с целым числом Предупреждение

Сначала я 'преобразование несовместимого целое указателю инициализацией BOOL ... С моей декларации:

BOOL *isAVideo = [[feedItem objectForKey:@"isAVideo"]boolValue]; 

Во-вторых, когда я использую эту переменную в сравнении, чтобы проверить значение объекта:

if (isAVideo == 1) 

Состояния предупреждений «Сравнение между указателем и целым числом». Вот метод для контекста:

- (void)setFeedItem:(PFObject *)feedItem 
{ 
_feedItem = feedItem; 
PFUser *user = [feedItem objectForKey:@"user"]; 
BOOL *isAVideo = [[feedItem objectForKey:@"isAVideo"]boolValue]; 

[_usernameButton setTitle:user.username 
       forState:UIControlStateNormal]; 
_captionView.text = [feedItem objectForKey:@"desc"]; 
_timestampLabel.text = [NSDate cks_stringForTimeSinceDate:feedItem.createdAt]; 

PFQuery *query = [PFQuery queryWithClassName:@"tfeed"]; 
[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
    if (object) { 
     // Object Found 
     NSLog(@"object found"); 

     BOOL isVideo = [[object objectForKey:@"isAVideo"]boolValue]; 
     NSLog(@"is a video: %d", isVideo); 

     if (isAVideo == 1) { 
      NSLog(@"object is a video"); 
     } 

ответ

1

BOOL примитивного типа, поэтому удалите звездочку.

BOOL isAVideo = [[feedItem objectForKey:@"isAVideo"]boolValue]; 

Чтобы проверить это, если заявление использовать любое следующее:

if (isAVideo != NO) { 
     //true 
    } 
    if (isAVideo == YES) { 
     //true 
    } 
    if (isAVideo) { 
     //true 
    } 

    if (isAVideo == NO) { 
     //false 
    } 
    if (!isAVideo) { 
     //false 
    } 
+0

Спасибо! Можно ли сравнить значение isAVideo с '1'/true)? –

+1

Да, но поскольку это BOOL, имеет смысл сравнить его с YES (хотя он имеет то же значение). –

+0

В общем, лучше написать 'x! = NO' вместо' x == YES'. Это связано с тем, что любое значение, отличное от NO (ноль), считается истинным и будет таким, каким вы хотите, в каждом случае. – Avi

Смежные вопросы