Comments (5)
Hmmm... not sure about this one. For learning purposes, it's probably good for folks to understand that GAIDictionaryBuilder returns an NSMutableDictionary.
Also, I'm not sure casting it as a NSDictionary will change the fact that underneath it's still an NSMutableDict. If you add this line under your modified code...
NSLog(@"Event is mutable dictionary? %d", [event isKindOfClass:[NSMutableDictionary class]]);
you'll see that it's still considered an NSMutableDictionary by iOS.
On the other hand, if your bug is really suggesting that the API is wrong and it should be returning a dictionary instead of a mutable dict, that's another matter. :) I don't know how often we expect developers to make calls that would modify this thing after the fact...
from io2015-codelabs.
I'm going to close this one as fine. The Analytics docs (not just the codelab) suggest using NSMutableDictionary
since that's the real type.
from io2015-codelabs.
@ToddKerpelman I don't see reasons why the code can not look like this:
NSDictionary *event =
[[[GAIDictionaryBuilder createEventWithCategory:@"Action"
action:@"Share"
label:nil
value:nil] build] copy];
[tracker send:event];
This is more understandable and safe.
from io2015-codelabs.
That's a fair point.
I actually think this probably points to a larger issue, which is: should this be a mutable dictionary in the first place? It all depends on whether or not the developer is ever meant to change things with it afterwards. (Or if it's a requirement from the library because it needs to somehow mutate it afterwards.) If not, maybe the right solution would be to file a bug and just have this method return an NSDictionary.
from io2015-codelabs.
FWIW, I'm bringing this up with the Analytics SDK team to see what they have to say.
from io2015-codelabs.
Related Issues (20)
- recipe-app-start first syncing failed
- regarding problem in barcode detector
- Sample project Not building even after gradle sync
- Little Notice
- [Suggestion] Alternative python server command for Python3
- Cannot resolve symbol 'Builder'
- android-deep-linking I found
- airhorn sound HOT 1
- Some code is missing in Japanese translation.
- Some markdown not parsed correctly
- Barcode Detection with the Mobile Vision API Prerequisites HOT 1
- import com.google.android.gms.vision.Frame;
- Deprecate wear/always-on sample
- Grammatical correction in Adding a UI to your App
- Codelab does not give instructions to open cloud shell vs. terminal HOT 1
- Codelab for Deep Linking needs to be redone and updated
- geofencing sample code link broken
- Deprecated code in sign in gradle files in codelabs
- MINE type text/plain error HOT 1
- Misprint HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from io2015-codelabs.