Сегодня расширение не работает

У меня есть некоторые проблемы с сегодняшними расширениями на iOS8. Я попытался выполнить отладку с помощью отладчика Xcode и поместив nslogs. В моем коде тоже нет логики. По какой-то причине:

  1. Виджет не отображает никаких данных (он работает только для Hello World Label)
  2. Отладка не работает, до точек останова не доходит. Есть ли какой-то конкретный способ отладки расширений?

Вот мой фрагмент кода

@implementation TodayViewController{
    NSArray *localList;
}

-(void)awakeFromNib{
    [super awakeFromNib];

    [self loadList];

    [self setPreferredContentSize:self.tableView.frame.size];

    NSLog(@"inside awake from nib");
}

- (void)viewDidLoad
{
   [super viewDidLoad];
   // Do any additional setup after loading the view.
   NSLog(@"inside view did load");
}

-(void)loadList{
    NSMutableArray *mutableArray = [[NSMutableArray alloc]initWithCapacity:5];
    [mutableArray addObject:@"asdjasdj"];
    [mutableArray addObject:@"qowiepqiw"];
    [mutableArray addObject:@"qoqwoei"];
    [mutableArray addObject:@"pqoiweoqi"];
    [mutableArray addObject:@"lkdsflk"];
    [mutableArray addObject:@"kdjlkaj"];

    localList = [mutableArray copy];
}

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

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

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath   *)indexPath{

    UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"WidgetCell"];

    UILabel *label = [[UILabel alloc]init];
    [label setText:[localList objectAtIndex:indexPath.row ]];
    [[cell contentView]addSubview:label];

    return cell; 
}

person Karthik    schedule 19.06.2014    source источник
comment
Удачи ребята?? Даже у меня такая же проблема :(   -  person prasad1250    schedule 19.06.2014
comment
У меня такая же проблема. Кажется, он не вызывает какой-либо код, который у меня есть в моем классе. Вероятно, ошибка.   -  person Keith    schedule 23.06.2014
comment
нашел решение @ stackoverflow.com/a/24345960/1746370 Надеюсь, это поможет   -  person Karthik    schedule 23.06.2014
comment
Мое временное решение перезагружает телефон каждый раз, когда я хочу отладить. Очевидно, что это не очень хорошее исправление, но оно работает.   -  person Zane Helton    schedule 26.07.2014


Ответы (4)


Для отладки расширения необходимо вручную прикрепить виджет к отладчику.

В меню Xcode «Отладка» -> «Присоединить к процессу» -> «ваш идентификатор пакета расширения»

person Jing    schedule 20.06.2014
comment
Спасибо. Есть ли способ, которым я могу подключить отладчик, когда приложение запускается, как это происходит для основной цели приложения? - person Karthik; 20.06.2014
comment
Не в данный момент. Apple постарается сделать это в следующей итерации XCode — последнее слово, которое я слышал. - person Ankush Agrawal; 11.07.2014
comment
@AnkushAgrawal Из примечания к выпуску Xcode 6 beta 3 кажется, что Apple исправила эту проблему. Хотя у меня нет возможности это проверить. - person Jing; 11.07.2014

Напишите это

[self setPreferredContentSize:self.tableView.frame.size];

перед загрузкой любого подпредставления (tableview или label), и я записываю их в viewDidLoad. Меня устраивает.

person Janet    schedule 27.10.2014
comment
в swift preferredContentSize = CGSizeMake(0, 600), по-видимому, ширина неуправляема и поэтому может быть установлена ​​​​на 0. - person Alex Bollbach; 11.07.2016

Если виджет не отображается, вы также можете попробовать перезагрузить телефон.

person Lim Thye Chean    schedule 31.07.2014

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

person Rick    schedule 22.07.2014