小编Kal*_*ney的帖子

Swift - 如果小数等于0,如何从float中删除小数?

我显示一个十进制的距离,我想删除这个小数,如果它等于0(例如:1200.0Km),我怎么能在swift中做到这一点?我正在显示这样的数字:

let distanceFloat: Float = (currentUser.distance! as NSString).floatValue
distanceLabel.text = String(format: "%.1f", distanceFloat) + "Km"
Run Code Online (Sandbox Code Playgroud)

floating-point ios swift

67
推荐指数
10
解决办法
6万
查看次数

如何在swift中循环遍历一个对象数组

我正在尝试访问存储在数组中的对象的url,但是我遇到了错误,无论我使用什么方法.

let userPhotos = currentUser?.photos

    for var i = 0; i < userPhotos!.count ; ++i {
        let url = userPhotos[i].url
    }
Run Code Online (Sandbox Code Playgroud)

我来了

找不到会员'url'

并与foreach:

for photo in userPhotos {

        Utils.getImageAsync(photo.url , completion: { (img: UIImage?) -> () in

        })
    }
Run Code Online (Sandbox Code Playgroud)

我明白了:

'[ModelAttachment]?没有名为'Generator'的成员

我的数组是var photos: Array<ModelAttachment>?,我的ModelAttachment看起来像这样:

class ModelAttachment :Model {
var id: String?
var url: String?
var thumb: String?
}
Run Code Online (Sandbox Code Playgroud)

任何指向我做错的指针都会很棒:)

arrays ios swift

43
推荐指数
2
解决办法
10万
查看次数

IOS Facebook SDK:尽管授予了权限,登录也不会返回电子邮件

我正在尝试通过facebook sdk获取信息,但到目前为止我只获得用户的ID和名称,虽然我确定有可用的电子邮件,因为这是我的帐户.我一直在寻找几个答案,但到目前为止他们都没有解决我的问题.我做错了什么,为什么在我请求多个权限时它没有返回更多数据?

这是我的代码:

fbLoginManager.logInWithReadPermissions(["public_profile", "email", "user_friends", "user_about_me", "user_birthday"], handler: { (result, error) -> Void in
        if ((error) != nil)
        {
            // Process error
            println("There were an error: \(error)")
        }
        else if result.isCancelled {
            // Handle cancellations
            fbLoginManager.logOut()
        }
        else {
            var fbloginresult : FBSDKLoginManagerLoginResult = result
            if(fbloginresult.grantedPermissions.contains("email"))
            {
                println(fbloginresult)
                self.returnUserData()
            }
        }
    })
Run Code Online (Sandbox Code Playgroud)

以及获取用户数据的功能:

func returnUserData()
{
    let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
    graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

        if ((error) != nil)
        {
            // Process …
Run Code Online (Sandbox Code Playgroud)

facebook-graph-api facebook-ios-sdk swift

14
推荐指数
4
解决办法
1万
查看次数

在iOS8中不推荐使用displaysSearchBarInNavigationBar

我正在尝试为iOs8找到displaySearchBarInNavigationBar的替代品,有什么我可以使用的(在swift中)?

我试过self.navigationItem.titleView = resultSearchController.searchBar但它没有做任何事情.

我不明白如何找到已弃用的函数的替代品,在苹果文档中它只是说弃用了,没有其他选择,如果你有任何提示,我将不胜感激.

uisearchbardisplaycontrol ios swift ios8

6
推荐指数
1
解决办法
1757
查看次数

Google登录端点不再返回用户名

我在我的iOS应用上使用Google登录.直到最近我注意到应用程序不再获取用户名,一切都运行良好,只返回电子邮件地址.

我通过我发送到我的服务器的应用程序获取令牌,该应用程序通过向此端点发送请求来获取完整信息:

https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=MYTOKEN
Run Code Online (Sandbox Code Playgroud)

我现在得到这样的答案:

{

    "issuer": "https://accounts.google.com",
    "issued_to": "o37l8g.apps.googleusercontent.com",
    "audience": "o37l8g.apps.googleusercontent.com",
    "user_id": "113504",
    "expires_in": ?814,
    "issued_at": ?1452991611,
    "email": "myemail@gmail.com",
    "email_verified": true

}
Run Code Online (Sandbox Code Playgroud)

我尝试使用其他端点,例如https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=https://www.googleapis.com/oauth2/v1/userinfo?access_token=,但它们都没有用.

我也尝试过操场,但找不到使用哪个端点,我的范围定义明确,我在iOS应用程序中看到所有权限都被请求,但不知怎的,它仍然没有返回用户的名字......有什么想法吗?

php oauth-2.0 google-signin

5
推荐指数
1
解决办法
981
查看次数

Android - 子片段未在 FragmentStatePagerAdapter 内第二次加载

我在使用 FragmentStatePagerAdapter 正确显示片段内的片段时遇到了问题。第一次一切正常加载,但下次视图是空白的。我试过这个这个答案,但它没有解决问题。

所以基本上我有一个 FriendActivityFragment 加载在 MainActivity 中:

public class FriendActivityFragment extends Fragment {

private FriendsTabsPagerAdapter mAdapter;
private ViewPager mPager;
private SlidingTabLayout mTabs;

public FriendActivityFragment() {

}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (mAdapter == null) {
        //mAdapter = new FriendsTabsPagerAdapter(getActivity().getSupportFragmentManager());
        mAdapter = new FriendsTabsPagerAdapter(getChildFragmentManager());
    }

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_friend, container, false);
    super.onCreate(savedInstanceState);

    mPager = (ViewPager) view.findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);

    mTabs = (SlidingTabLayout) view.findViewById(R.id.tabs);
    mTabs.setDistributeEvenly(true); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragmentstatepageradapter

5
推荐指数
1
解决办法
2174
查看次数

Android:如何通过Picasso下载图像后重新加载自定义标记?

我正在尝试动态加载用户头像作为自定义标记.我的代码基于谷歌地图utils演示,但不知何故它不起作用,它只加载一个图像,所有其他图像为空:

在此输入图像描述

这是我的代码:

public class MapsActivity extends FragmentActivity implements ClusterManager.OnClusterItemClickListener<ModelUser>, ClusterManager.OnClusterItemInfoWindowClickListener<ModelUser> {

    private ClusterManager<ModelUser> mClusterManager;
    private GoogleMap mMap; // Might be null if Google Play services APK is not available.
    private QueryAPI query = new QueryAPI();
    private List<ModelUser> users = new ArrayList<ModelUser>();
    ImageLoader imageLoader = AppController.getInstance().getImageLoader();

    //UI
    NetworkImageView avatarImageView;
    TextView name;
    TextView infos;
    TextView distance;
    RelativeLayout detailView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        setUpMapIfNeeded();

        detailView = (RelativeLayout) findViewById(R.id.detailView);
        avatarImageView = (NetworkImageView) findViewById(R.id.imageView);
        name = (TextView) findViewById(R.id.name);
        infos = (TextView) …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-markers

4
推荐指数
1
解决办法
3482
查看次数

Android:Google 登录令牌无效

我从通过 google 登录 android 收到的令牌中收到错误消息:

{“错误”:“invalid_token”,“error_description”:“无效值”}

我还注意到,与我在 iOS 中获得的令牌相比,我的令牌看起来有点短:

ya29.4AFYx2XNZ1sdfdzhWo-of-fSpsDPjgmATx-J82mCjqZJXglwj8VOvedpY_YXJgEVIWe
Run Code Online (Sandbox Code Playgroud)

我得到这样的令牌:

 private class RetrieveTokenTask extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            String accountName = params[0];
            String scopes = "oauth2:profile email";
            String token = null;
            try {
                token = GoogleAuthUtil.getToken(getActivity().getApplicationContext(), accountName, scopes);
            } catch (IOException e) {
                Log.e(TAG, e.getMessage());
            } catch (UserRecoverableAuthException e) {
                //startActivityForResult(e.getIntent(), REQ_SIGN_IN_REQUIRED);
            } catch (GoogleAuthException e) {
                Log.e(TAG, e.getMessage());
            }
            return token;
        }

        @Override
        protected void onPostExecute(String token) {
            super.onPostExecute(token);
            Log.i("Token Value: ", …
Run Code Online (Sandbox Code Playgroud)

android token google-signin

4
推荐指数
1
解决办法
2998
查看次数

Android - 安装失败,显示消息:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

我不能再运行我的应用了,我有错误:

失败[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

我在这里读了很多关于它的其他问题,但到目前为止我找不到解决方案,有人可以查看我的清单并告诉我我做错了什么吗?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="kalianey.com.bonnieandclit" >

<application
    android:name="Utils.KYController"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Register"
        android:label="@string/title_activity_register" >
    </activity>
    <activity
        android:name=".People"
        android:label="@string/title_activity_people" >
    </activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

编辑:错误日志

Installing kalianey.com.bonnieandclit
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/kalianey.com.bonnieandclit"
pkg: /data/local/tmp/kalianey.com.bonnieandclit
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]
Run Code Online (Sandbox Code Playgroud)

编辑2:文件结构的屏幕截图

文件结构

android android-manifest

3
推荐指数
1
解决办法
5868
查看次数

RecyclerView:没有连接适配器; 跳过布局

我一直在阅读stackoverflow和这篇博客文章中的不同答案,并试图实现他们的解决方案,但我仍然得到错误:

RecyclerView:没有连接适配器; 跳过布局

所以我onCreateView在我的片段中初始化我的回收器视图,如下所示:

public class ProfileFragment extends Fragment {

private ModelUser user;

private View view;
private RecyclerView gridView;
private ProfilePhotoRecyclerViewAdapter adapter;
private List<ModelAttachment> photoList = new ArrayList<ModelAttachment>();

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.fragment_profile, container, false);

    initializeRecyclerView();

    //Get extra info for user
    QueryAPI query = new QueryAPI();
    query.userExtra(user, new QueryAPI.ApiResponse<ModelUser>() {
        @Override
        public void onCompletion(ModelUser result) {
            user = result;
                photoList.clear();
                photoList.addAll(0,user.getPhotos());

                adapter.notifyDataSetChanged();

            }
        });

     return view;

}

}
Run Code Online (Sandbox Code Playgroud)

功能 …

android android-recyclerview

3
推荐指数
1
解决办法
3万
查看次数

带集群的MapView:如何在同一视图上显示多个注释

我已经集成了FBAnnotationClustering,mkmapview它完美地工作,但是当在完全相同的位置有多个注释时,我无法使用正确的信息显示annotationView.我正在尝试循环注释并在同一视图中显示它们(每个都带有一个标注按钮以显示更多信息).

到目前为止,我设法让一个标注工作在底部显示细节,但在annotationView中它显示没有正确的标题,并且只有一个因此它不是很有用.所以我想知道,是否可以在同一视图上显示多个注释?知道我怎么能做到这一点?

带有单个注释的地图 使用群集视图映射

这是我的集群类:

class FBAnnotationCluster : NSObject {

var coordinate = CLLocationCoordinate2D(latitude: 39.208407, longitude: -76.799555)

var title:String = "cluster"
var subtitle:String? = nil
var annotations:[FBAnnotation] = []  
}
Run Code Online (Sandbox Code Playgroud)

我的单注释类:

class FBAnnotation : NSObject {

var coordinate: CLLocationCoordinate2D
var id: Int
var title: String
var subtitle: String
var distance: String

init(id: Int, title: String, subtitle: String, distance: String, coordinate: CLLocationCoordinate2D){
    self.id = id
    self.title = title
    self.subtitle = subtitle
    self.distance = distance
    self.coordinate = coordinate
}   
} …
Run Code Online (Sandbox Code Playgroud)

mkmapview mkannotation mkannotationview ios swift

2
推荐指数
1
解决办法
834
查看次数

Facebook IOS SDK:如何做静音登录?

我有一个应用程序在Facebook登录,这很好,但每次我重新打开它我必须再次连接到Facebook进行登录.我也在使用谷歌登录sdk我可以调用该功能gSignIn.signInSilently(),是否有类似于Facebook的东西?我为javascript sdk 找到了这个,但我不知道ios SDK是否可能以及如何在swift中使用它...

ios facebook-ios-sdk swift

1
推荐指数
1
解决办法
2050
查看次数

Android排球:如何在解析之前检查json类型

是否有可能事先检查json的类型?我是somteimes得到一个数组,有时一个对象,我不知道如何处理这2个案例,而不做2个不同的功能...

public void RequestApi( String url, final ApiResponse<ApiResult> completion  )
    {
        Log.v("Performing request: ", url);
        JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.GET, hostname+url, (JSONObject) null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response)
                {
                    Log.v("RequestApi Response", response.toString());
                    //Log.v("Data: ", response.toString());
                    try {
                        ApiResult res = new ApiResult();
                        Boolean success = response.getBoolean("success");

                        //here need to check type, sometimes array, sometimes object
                        JSONArray data = response.getJSONArray("data"); 

                        res.success = success;
                        res.data = data;
                        completion.onCompletion(res);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() …
Run Code Online (Sandbox Code Playgroud)

android json types android-volley

0
推荐指数
1
解决办法
979
查看次数