我来自Java背景,我正在学习Objective C.我正在尝试创建一个具有字符串数组和成员函数来修改数组的类.我的代码看起来像这样:
@implementation TAWChapter
@synthesize mSubject;
@synthesize mItems;
- (id) init{
self.mItems = [[NSMutableArray alloc] init];
return self;
}
- (void) setSubject:(NSString *)subject{
self.mSubject = subject;
}
- (void) addItem:(NSString *)item{
[self.mItems addObject:@"asdf"];
}
@end
Run Code Online (Sandbox Code Playgroud)
哪个没用.我得到了一个"[__NSArrayI addObject:]: unrecognized selector sent to instance "和一个"NSInvalidArgumentException".在互联网上搜索后,我将构造函数中的单行更改为:
self.mItems = [self.mItems init];
Run Code Online (Sandbox Code Playgroud)
它有效,但为什么呢?从Java开发人员的角度来看,第一个比第二个更有意义.我有另一条线,它与第一条线相同,但它正在工作(不在构造函数中).有人可以向我解释一下吗?
我有一个MKMapView,有一个UISearchBar在上面,我希望用户能够键入一个地址,并找到该地址并在其上放置一个图钉.我不知道的是如何将地址字符串转换为经度和纬度,所以我可以创建一个CLLocation对象.有谁知道我怎么做到这一点?
在斯威夫特我怎么转换CFStringRef[],并CFTypeRef[]以CMutablePointer< COpaquePointer >?
我想打电话CFDictionaryCreate给斯威夫特.我已经定义:
var keys: CFStringRef[] = [kCGImageSourceCreateThumbnailWithTransform, kCGImageSourceCreateThumbnailFromImageIfAbsent, kCGImageSourceThumbnailMaxPixelSize, kCGImageSourceCreateThumbnailFromImageAlways]
var values: CFTypeRef[] = [kCFBooleanTrue, kCFBooleanTrue, imageSize, kCFBooleanTrue]
CFDictionaryCreate(nil, keys, values, 4, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)
Run Code Online (Sandbox Code Playgroud)
但不知道如何在上面的调用中指定键和值.
我正在使用适用于iOS的Google Places API自动填充功能,它会返回placeID.如何从placeID获取GMSAddress?我目前使用lookupPlaceID获取GMSPlace,然后使用reverseGeocodeCoordinate从GMSPlace中的坐标获取GMSAddress.但它要求Google API 3次:AutoComplete,lookupPlaceID,reverseGeocodeCoordinate.
有没有办法直接从PlaceID或GMSPlace获取GMSAddress?