Search code examples
ios8ios-app-extension

Today Extension not working


I have some issues in Today Extensions on iOS8. I tried debugging using the Xcode Debugger and by putting nslogs. There is no logic in my code as well. For some reason:

  1. The widget is not displaying any data (its only working for Hello World Label)
  2. Debugging is not working, it doesn't reach any break points. Is there any specific way to debug extensions?

Here is my code snippet

@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; 
}

Solution

  • To debug the extension, you need to manually attach the widget to the debugger.

    From the Xcode menu "Debug" -> "Attach to process" -> "your extension bundle id"