1. iOS通知センターの通知をアプリ側から消去する

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

    通常はこれで消える・・・のですが、ペイロードで指定しているバッジ数が「0」の場合消えてくれません。その場合、アプリ側でいったんバッジ数を設定し、その後0にします。

     
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1];
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

    こんなかんじです。無駄にハマりました。。。

  2. UIActivityに別々の値を渡す

    複数のUIActivityにそれぞれの別の値を渡したい場合、次のようにします。(UIActivityViewControllerを使っている前提です。)

    まず、データを渡す側。UIActivityItemSourceを実装して、あらかじめUIActivityで定義したactivityTypeごとにそれぞれ別の値をreturnします。

    -(id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType{
    if([activityType isEqualToString:@"anActivity"]){
    return @"value";
    }else{
    return @"another value";
    }
    }

    あとはそれをActivity側でprepareWithActivityItems:が呼ばれるときに受け取ってあげればOKです。
    - (void)prepareWithActivityItems:(NSArray *)activityItems {
    self.queryString = [activityItems lastObject];
    }