1

When Parse.com is sending push notifications while the app is not in the foreground, everything works just fine. Though the loc-key the correct localized string from localizable.string is found and the arguments that come through loc-args are filled in properly:

"%1$@ has created an event and sent out %2$@ invitations"

becomes "Frank has created an event and sent out 14 invitations."

"Good News: %1$@ has joined your event!"

becomes "Good News: Oliver has joined your event!"

when the app is in the foreground, I want to show an in-app banner as well. For that purpose I need the get the same correct string as above.

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {

    let aps: NSDictionary! = userInfo["aps"] as! NSDictionary

    let alert: NSDictionary = aps.objectForKey("alert") as! NSDictionary

    let locArgs: NSArray = alert.objectForKey("loc-args") as! NSArray

    let locKey: String = alert.objectForKey("loc-key") as! String

    let localizedString: NSString = NSLocalizedString(locKey, comment: "")

    let localizedStringWithArgs = NSString(format: localizedString, locArgs)

    println(localizedStringWithArgs)

...if locArgs is

( Frank,
"14"
)

the output is:

(
Frank,
14
) has created an event and sent out 14 invitations.

when using normal placeholder like %@ or

(
    Frank,
    14
) has created an event and sent out (null) invitations.

when using %1$@, %2$@...

...how can I properly set the arguments in the same way it is done by apple when the app is inactive through filling in the loc-args in the right spots %1$@, %2$@...?

iYoung
  • 3,596
  • 3
  • 32
  • 59
alexeis
  • 2,152
  • 4
  • 23
  • 30
  • Take a look at http://stackoverflow.com/a/19799067/1988185 for a slightly hacky workaround – Wain Jun 05 '15 at 10:27

0 Answers0