2014-06-19 188 views
1

我在iOS8的今日擴展中遇到了一些問題。我嘗試使用Xcode調試器並放置nslogs進行調試。我的代碼中也沒有邏輯。出於某種原因:今日擴展無法正常工作

  1. 窗口小部件不顯示任何數據(它的唯一工作的Hello World標籤)
  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; 
} 
+0

任何運氣傢伙?即使我有同樣的問題:( – prasad1250

+0

我有同樣的問題,它似乎沒有調用我在我的班級中的任何代碼,可能是一個錯誤, – Keith

+0

找到了解決方案@ http://stackoverflow.com/a/24345960/1746370希望它有幫助 – Karthik

回答

2

要調試的擴展,您需要將控件手動附加調試器。

從Xcode的菜單中選擇「調試」 - >「附加到進程」 - >「您的擴展束ID」

+0

謝謝。有沒有一種方法,我可以讓調試器附加當應用程序啓動就像它發生的主要應用程序的目標? – Karthik

+1

目前還不是。蘋果將在下一次迭代XCode是我聽到的最新的字。 –

+1

@AnkushAgrawal從Xcode 6的發行說明測試版3,似乎蘋果已經解決了這個問題,但我還沒有機會去驗證這個問題, – Jing

0

還要確保,如果你的設備上運行它的手機被解鎖。至少對我來說,運行widget目標不會解鎖手機,但如果我自己做,它就可以工作。

2

如果小部件沒有顯示,您也可以嘗試重新啓動手機。

+0

當它沒有顯示的時候,這個工作可以使用 – mwhuss

3

寫這

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

加載任何子視圖(的tableview標籤),我在viewDidLoad寫這些了。這個對我有用。

+0

這個^^^^^^^^^^^ –

+0

在swift中,'preferredContentSize = CGSizeMake(0,600)' 顯然寬度是不可控制的,因此可以設置爲0。 –

相關問題